Beispiel #1
0
 //绑定点击事件
 private void bindClickResponse(ToolStripMenuItem menuItem, MODEL.menu menu)
 {
     menuItem.Click += (object sender, EventArgs e) => {
         // 寻找打开的窗口,如果有已经打开的则不新增
         if (tabControl1.TabPages.ContainsKey(menu.fieldName))
         {
             tabControl1.SelectedTab = tabControl1.TabPages[menu.fieldName];
         }
         else
         {
             Assembly assembly    = Assembly.LoadFile(Application.StartupPath + "\\" + menu.dllName);
             var      currentForm = (assembly.CreateInstance(menu.fieldName) as Form);
             currentForm.TopLevel        = false;
             currentForm.FormBorderStyle = FormBorderStyle.None;
             currentForm.Dock            = DockStyle.Fill;
             var tabPage = new TabPage();
             tabPage.Name = menu.fieldName;
             tabPage.Controls.Add(currentForm);
             tabPage.Text = menu.name;
             tabControl1.TabPages.Add(tabPage);
             tabControl1.SelectedTab = tabPage;
             currentForm.Show();
         }
     };
 }
Beispiel #2
0
 //寻找子菜单
 private void findSubNode(MODEL.menu menu, ToolStripMenuItem menuItem)
 {
     foreach (var subMenu in listMenu.OrderBy(x => x.showOrder).Where(x => x.parentId == menu.id))
     {
         ToolStripMenuItem subMenuItem = new ToolStripMenuItem(subMenu.name);
         if (subMenu.canOpen)
         {
             bindClickResponse(subMenuItem, subMenu);
         }
         ;
         subMenuItem.Tag = subMenu;
         menuItem.DropDownItems.Add(subMenuItem);
         findSubNode(subMenu, subMenuItem);
     }
 }