MainMenu Merge
windows form的程序使用菜单mainmenu是,有时需要根据操作隐藏或显示menuitem,另外窗体类和关联的菜单项事件在一个class中,结构清晰。
do like this:
class Form1: Form{
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
IsMdiContainer = true;
Menu = new MainMenu();
MenuItem File = Menu.MenuItems.Add("&File");
File.MergeType = MenuMerge.MergeItems;
File.MergeOrder = 0;
MenuItem FileNew = File.MenuItems.Add("&New", new EventHandler(New_Click));
FileNew.Shortcut = Shortcut.CtrlN;
FileNew.MergeOrder = 10;
}
private void New_Click(Object Sender,EventArgs e)
{
}
// other codes
}
public class doc : System.Windows.Forms.Form
{
public doc()
{
Menu = new MainMenu();
MenuItem File = Menu.MenuItems.Add("&File");
File.MergeType = MenuMerge.MergeItems ;
File.MergeOrder = 0;
MenuItem Save=File.MenuItems .Add ("&Save",new EventHandler (Save_Click));
Save.MergeType =MenuMerge.MergeItems ;
Save.MergeOrder =9;
MenuItem Saveas=File.MenuItems .Add ("&Save as",new EventHandler (Saveas_Click));
Saveas.MergeType =MenuMerge.MergeItems ;
Saveas.MergeOrder =11;
MenuItem Help = Menu.MenuItems.Add("&Help");
Help.MergeOrder = 400;
Help.MenuItems.Add("&About .NET Resourcer");
}
private void Save_Click(Object Sender,EventArgs e)
{
}
private void Saveas_Click(Object Sender,EventArgs e)
{
MessageBox.Show ("Hello guys");
}
// other code
}