PDA

View Full Version : فعال يا غير فعال كردن زيرمنوها



hasty0087
سه شنبه 16 شهریور 1389, 02:04 صبح
سلام دوستان.
من مي خوام از طريق كدنويسي به آيتم هاي زير منو دسترسي داشته باشم.

مثلا تو اين عكس:http://www.barnamenevis.org/forum/C:\Documents and Settings\Marzieh\Desktop\untitled با اين كد:

ToolStripItem item;
item = menuStrip1.Items[6];

به مديريت دسترسي دارم . اما به آيتم هاي زير مديريت مثل ويرايش و حدف مدير دسترسي ندارم. مي خوام گاهي مواقع Enable اون True و گاهي False باشه.
اگه ممكنه راهش رو بهم بگيد.
ممنون
--------------------
نمي دونم چرا عكس نشان داده نشده. مجبورم اينجوري منو رو توضيح بدم:
دانش اموز و كاربر و مديريت سر منوها هستند كه ورود مديرو ويرايس و حذف مدير زير منوهاي مديريت هستند و هدف من دستيابي به زير منوهاي مديريت مثل ورود مدير است.

MEhdi Sobhani
سه شنبه 16 شهریور 1389, 03:36 صبح
با عرض معذرت از اشتباه پست قبلی
میتونید از DropDownItems استفاده کنید .

hasty0087
سه شنبه 16 شهریور 1389, 05:14 صبح
ميشه بيشتر توضيح بديد چه جوري؟؟؟؟؟؟؟؟؟

MEhdi Sobhani
سه شنبه 16 شهریور 1389, 11:13 صبح
ميشه بيشتر توضيح بديد چه جوري؟؟؟؟؟؟؟؟؟



foreach (ToolStripDropDownItem item in Mnufile.DropDownItems)
{
item.Enabled = false;
}


مثلا اینجا من یه منو دارم به نام MnuFile که چند تا سابمنو داره .
با این دستورات تمام اونها رو یکی یکی disable میکنم .
و یا این طوری :



MnuQuality.DropDownItems[0].Enabled= false;


که سابمنوی اول رو Disable میکنم .

hasty0087
چهارشنبه 17 شهریور 1389, 01:27 صبح
سلام جناب سبحاني.
ممنون از پيگيريتون.
اما كامپوننت MenuStrip كه اصلا خصوصيت DropDownItems نداره.
ممنون مي شم راهنماييم كنيد

MEhdi Sobhani
چهارشنبه 17 شهریور 1389, 01:34 صبح
سلام جناب سبحاني.
ممنون از پيگيريتون.
اما كامپوننت MenuStrip كه اصلا خصوصيت DropDownItems نداره.
ممنون مي شم راهنماييم كنيد
سلام
خواهش میکنم .
این خصوصیت مربوط به کامپوننت منواستریپ نیست ، مربوط به هر کدوم از منوهاس .

در واقع مربوط به کامپوننت ToolStripMenuItem هست .
به عنوان مثال در خود منواستریپ هر ایتمی که پست اول اشاره کردید ، مثل این



menuStrip1.Items[6]


خودش یک ToolStripMenuItem هست . که سابمنوهاش هم ToolStripMenuItem هستند .

hasty0087
پنج شنبه 18 شهریور 1389, 01:29 صبح
مجددا سلام و تشكر از بابت جوابتون.
ببينيد من نمي تونم كد:

foreach (ToolStripDropDownItem item in Mnufile.DropDownItems)
{
item.Enabled = false;
}


رو اجرا كنم. چون بعد از نوشتن MnuFile و گذاشتن نقطه اصلا خصوصيت DropDownItems رو نداره.
مطمئنيد كه ايني كه نوشتيد درسته؟؟؟؟؟؟؟؟

MEhdi Sobhani
پنج شنبه 18 شهریور 1389, 01:46 صبح
مجددا سلام و تشكر از بابت جوابتون.
ببينيد من نمي تونم كد:

foreach (ToolStripDropDownItem item in Mnufile.DropDownItems)
{
item.Enabled = false;
}

رو اجرا كنم. چون بعد از نوشتن MnuFile و گذاشتن نقطه اصلا خصوصيت DropDownItems رو نداره.
مطمئنيد كه ايني كه نوشتيد درسته؟؟؟؟؟؟؟؟
بله مطمئنم
احتمالا شما اسم منواستریپ رو گذاشتید mnufile !!1 نمی دونم .
یه نمونه مثال رو ضمیمه میکنم .
کلید رو فرم رو هر بار بزنید سابمنوها رو دیزبل و انیبل میکنه .

MEhdi Sobhani
پنج شنبه 18 شهریور 1389, 01:51 صبح
واسه اینکه ببینید این سابمنوها کجا اضافه شدن ، توی کدهای دیزاینر رو بگردید و اسم منوها و سابمنوها رو پیدا کنید .
مثلا تو کدهای بخش دیزاینر من که خودکار موقع طراحی درست میشن این کد هست :




//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] {
this.newToolStripMenuItem,
this.openToolStripMenuItem,
this.closeToolStripMenuItem,
this.exitToolStripMenuItem});


که اینا کدهایی هستند که سابمنوها رو اضافه کردن به fileToolStripMenuItem.DropDownItems. . موقع اجرای برنامه هم میشه اینطوری سابمنو اضافه کرد یا محل سابمنوها رو تغییر داد .

BILLY_Mgs
پنج شنبه 18 شهریور 1389, 02:13 صبح
مجددا سلام و تشكر از بابت جوابتون.
ببينيد من نمي تونم كد:

foreach (ToolStripDropDownItem item in Mnufile.DropDownItems)
{
item.Enabled = false;
}


رو اجرا كنم. چون بعد از نوشتن MnuFile و گذاشتن نقطه اصلا خصوصيت DropDownItems رو نداره.
مطمئنيد كه ايني كه نوشتيد درسته؟؟؟؟؟؟؟؟

سلام پست 4 رو دباره ببینید :


مثلا اینجا من یه منو دارم به نام MnuFile که چند تا سابمنو داره .

MEhdi Sobhani
پنج شنبه 18 شهریور 1389, 02:22 صبح
سلام پست 4 رو دباره ببینید :
سلام
خوب پست 4 پست خودمه . تو برنامه من MnuFile بوده . تو برنامه ایشون نبوده احتمالا .
واسه همین این دفعه یه کد کامل رو اتچ کردم که مشکل پیش نیاد .

hasty0087
جمعه 19 شهریور 1389, 04:44 صبح
سلام
من جواب سوالم رو پيدا كردم.
با دادن يه اسم به اون زير منو از پانل خصوصيات ميشه تو كد نويسي بهش دسترسي داشت