这里只讲在MDI中,子菜单与父菜单合并的简单方法。
首先在MDI的主窗体中:
1. 在主窗体构造函数中,添加如下代码,注意要在InitializeComponent调用之后,如:
//Add File Menu
MenuItem miFile = mnuMain.MenuItems.Add("&File");
miFile.MergeOrder=1;
miFile.MergeType = MenuMerge.MergeItems;
MenuItem miAddDoc = new MenuItem( "&Add Document",
new EventHandler(this.FileAdd_Clicked),
Shortcut.CtrlA );
miAddDoc.MergeOrder=100;
MenuItem miExit = new MenuItem( "E&xit",
new EventHandler(this.FileExit_Clicked),
Shortcut.CtrlX );
miExit.MergeOrder=110;
miFile.MenuItems.Add(miAddDoc);
miFile.MenuItems.Add("-"); // Give a seperator
miFile.MenuItems.Add(miExit);
//Add Window Menu
MenuItem miWindow = mnuMain.MenuItems.Add("&Window");
miWindow.MergeOrder = 10;
miWindow.MenuItems.Add( "&Cascade",
new EventHandler(this.WindowCascade_Clicked));
miWindow.MenuItems.Add( "Tile &Horizontal",
new EventHandler(this.WindowTileH_Clicked));
miWindow.MenuItems.Add( "Tile &Vertical",
new EventHandler(this.WindowTileV_Clicked));
miWindow.MdiList = true ; //Adds the MDI Window List to the bottom of the menu
2. 然后为相应的Menu_Click事件定义函数,如:
#region MENU_CLICK_MESSAGE_HANDLE
//File->Add Menu item handler
protected void FileAdd_Clicked(object sender, System.EventArgs e)
{
AddMDIChild() ; //Create new MDI child window
}
//File->Exit Menu item handler
protected void FileExit_Clicked(object sender, System.EventArgs e)
{
this.Close();
}
//Window->Cascade Menu item handler
protected void WindowCascade_Clicked(object sender, System.EventArgs e)
{
this.LayoutMdi(MdiLayout.Cascade);
}
//Window->Tile Horizontally Menu item handler
protected void WindowTileH_Clicked(object sender, System.EventArgs e)