PDA

View Full Version : ایجاد ToolStripMenuItem در برنامه



mr_mtc
سه شنبه 16 مرداد 1386, 10:43 صبح
من میخوام در هنگام اجرای برنامه پس از کلیک بر روی منوی window در StripMenu لیست فرم‌های فعال برنامه‌ام رو نمایش بده

البته لیست فرم‌ها رو استخراج می‌کنم فقط نمی‌تونم منو رو ایجاد کنم


for (int i = 0; i < Application.OpenForms.Count; i++)
{
string tmpMnu = Application.OpenForms[i].Name.ToString();

}

rasoul_ras
سه شنبه 16 مرداد 1386, 14:04 عصر
کد:

( private void toolStripDropDownButton1_Click(object sender, EventArgs e)

{

;( "toolStripDropDownButton1.DropDown.Items.Add("sadasd }

mr_mtc
سه شنبه 16 مرداد 1386, 16:05 عصر
میشه بیشتر توضیح بدید !؟

راستی رویدادکلیکش رو چه جوری تنظیم کنم

MH2538
سه شنبه 16 مرداد 1386, 16:50 عصر
سلام
ظاهراً شما از این پست دوبار فرستادید
من توی یکی دیگه جواب داده بودم ولی مثل اینکه اون بدلیل تکرار حذف شده یا هرچیز دیگه . بهر حال ظاهرًا غیب شده
من مجدد همون رو با گذاشتم.
مسئله رویداد کلیک در اون نشون داده شده.
آدرس فایل مثال : (http://barnamenevis.org/forum/attachment.php?attachmentid=10086&d=1186486920)


ToolStripMenuItem mySubMenu = new ToolStripMenuItem();
this.windowsToolStripMenuItem.DropDownItems.AddRan ge(new System.Windows.Forms.ToolStripItem[] {
mySubMenu});
mySubMenu.Size = new System.Drawing.Size(62, 20);
mySubMenu.Text = eMenuName.Text;
mySubMenu.Tag = tagcounter++;
mySubMenu.Click += new EventHandler(mySubMenu_Click);

آدرس پست قبلی :http://barnamenevis.org/forum/showthread.php?t=75144

mr_mtc
سه شنبه 16 مرداد 1386, 17:47 عصر
راستش من به این روش مشکلم رو تقریبا حل کردم


private void WindowToolStripMenuItem_Click(object sender, EventArgs e)
{
WindowToolStripMenuItem.DropDown.Items.Clear();
for (int i = 0; i < Application.OpenForms.Count; i++)
{
string tmpMnu = Application.OpenForms[i].Name.ToString() + "ToolStripMenuItem";
string tmpMnuName = Application.OpenForms[i].Text.ToString();
if (tmpMnu!="mainToolStripMenuItem")
WindowToolStripMenuItem.DropDown.Items.Add(i + ". " + tmpMnuName);
}
}

فقط نتونستم رویدادش رو درست کنم

البته تازه پاسخ مهدی حیدری عزیز رو دیدم؛ از رو کدش معلومه که احتمالا یه بخشی از کد رو ایشون تو فروم کپی کردن؛ هنوز فرصت نکردم فایل پیوست رو ببینم

ممنون از لطف شما دوستان

PC2st
سه شنبه 16 مرداد 1386, 17:54 عصر
با فرض اینکه یک Menu Item داشته باشیم بنام openFormsToolStripMenuItem که میخواهیم دو تا زیر منو به آن اضافه کنیم، برای این منظور، کد زیر رو مینویسیم:


ToolStripMenuItem firstMenuItem = new ToolStripMenuItem("Hello");
ToolStripMenuItem secondMenuItem = new ToolStripMenuItem("Goodbye");
this.openFormsToolStripMenuItem.DropDown.Items.Add Range(new ToolStripItem[] { firstMenuItem, secondMenuItem });
firstMenuItem.Click += new EventHandler(firstMenuItem_Click);
secondMenuItem.Click += new EventHandler(secondMenuItem_Click);

در خط اول یک ToolStripMenuItem نمونه سازی میشه و متن داخل این منو بصورت Hello تنظیم میشه. در خط دوم یک ToolStripMenuItem دیگری نمونه سازی میشه و متن داخل این منو بصورت Goodbye تنظیم میشه. حالا دو تا منو داریم که متن یکیشون Hello و متن دیگری Goodbye است. باید این منوها را به منوی openFormsToolStripMenuItem بصورت زیر منو اضافه کنیم و اینکار را در خط سوم انجام دادیم. در خط چهارم، برای رویداد click از منوی Hello یک متد را مشخص میکنیم و در خط پنجم برای رویداد Click از منوی Goodbye یک متد را مشخص میکنیم که کار این متد ها Handle کردن رخدادی است که در زمان کلیک مووس روی منو ها رخ میدهد. متدهای ذکر شده در کد زیر هست:


void firstMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}

void secondMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Goodbye");
}

mr_mtc
چهارشنبه 17 مرداد 1386, 13:47 عصر
بالاخره کد بالا رو تکمیل کردم
ممنون از همه که راهنمایی کردین