منو آیتم ها هم یک متد به نام performClick دارند دیگه
نیاز به سوئیچ کیس نیست.
یک مثال میزنم.
فرض کن یک یوزرکنترل با پراپرتی از نوع منوآیتم به صورت زیر داریم:
public partial class MyUserControl : UserControl
{
public MyUserControl()
{
InitializeComponent();
}
private ToolStripMenuItem menuItemThatCreateThisInstance;
public ToolStripMenuItem MenuItemThatCreateThisInstance
{
get { return menuItemThatCreateThisInstance; }
set { menuItemThatCreateThisInstance = value; }
}
}
حالا در فرم میخواهیم با کلیک منوآیتم یک نمونه از یوزرکنترل بسازیم و یک ارجاع از منوآیتم را در پراپرتی داخل یوزرکنترل نگه داریم. در ضمن با کلیک روی یوزرکنترل رویداد منوآیتم را از طریق پراپرتی اجرا کنیم:
private void myToolStripMenuItem_Click(object sender, EventArgs e)
{
MyUserControl uc = new MyUserControl();
uc.MenuItemThatCreateThisInstance = sender as ToolStripMenuItem;
uc.Click += new EventHandler(uc_Click);
this.Controls.Add(uc);
}
void uc_Click(object sender, EventArgs e)
{
(sender as MyUserControl).MenuItemThatCreateThisInstance.Perf ormClick();
}
بالاخره منوآیتم موردنظر را در پراپرتی قرار میدید و در رویداد بعد از cast کردن ، از طریق پراپرتی به رویداد performClick دسترسی دارید.
به همین راحتی