C# 如何将子菜单项添加到菜单项

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16146801/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 00:08:25  来源:igfitidea点击:

How to add submenu items to menuitems

c#winformscontextmenutablelayoutmenu-items

提问by hs.chandra

I have created a Table layout in windows forms as shown in figure, i have added a right mouse button click Menu to my table,

我在 Windows 窗体中创建了一个表格布局,如图所示,我在表格中添加了一个鼠标右键单击菜单,

i wnt to add submenu items to following menuitems such as

我不想将子菜单项添加到以下菜单项中,例如

When i click add deviceit should show subitems such as sounder, MCP, strobeetc When i click faultit should show subitems such as open circuit fault, sounder fault, `short circuit fault' so on

当我点击add device它应该显示子项,如sounderMCPstrobe等当我点击fault它应该显示子项,例如open circuit faultsounder fault`短路故障”等

This is how i created menuitems

这就是我创建菜单项的方式

    ContextMenu m = new ContextMenu();
    MenuItem addDevice = new MenuItem("Add Device");
    MenuItem deleteDevice = new MenuItem("delete Device");
    MenuItem fire = new MenuItem("Fire");
    MenuItem fault = new MenuItem("Fault");
    MenuItem suppress = new MenuItem("Suppress");
    m.MenuItems.AddRange(new MenuItem[] { addDevice, deleteDevice, fire, fault,suppress});
    tableLayout.ContextMenu = m;
    m.Show((Control)(sender), e.Location);

The below is my form and table layout

下面是我的表格和表格布局

http://i48.tinypic.com/33ok3cw.jpg

http://i48.tinypic.com/33ok3cw.jpg

采纳答案by Habib

You can add MenuItemsto existing MenuItemlike:

您可以添加MenuItems到现有的,MenuItem如:

MenuItem addDevice = new MenuItem("Add Device");
addDevice.MenuItems.Add( new MenuItem("Add More .."));

It would be visible like:

它会像这样可见:

enter image description here

在此处输入图片说明

回答by Habib

You can add This

你可以添加这个

var someMenu= new MenuItem("Foo");
someMenu.MenuItems.Add( new MenuItem("foo "));

回答by user1845588

That format doesn't work for me. I'm forced to use:

这种格式对我不起作用。我被迫使用:

// People often exclude the applicable "using" statements--so samples don't work!
using System.Web.UI.WebControls; 

// Create the MAIN menu item
MenuItem mnuMenuItem = new MenuItem();         

// Create the SUB menu item
MenuItem mnuSubMenuItem = new MenuItem();      

// Create the SUB menu item, "under" the MAIN menu item!
mnuMenuItem.ChildItems.Add(mnuSubMenuItem);  

回答by Tirtha

MenuItem newMenuItem1 = new MenuItem("Employee Master");
            MenuItem mnuSubMenuItem = new MenuItem();
            newMenuItem1.ChildItems.Add(mnuSubMenuItem);
            mnuSubMenuItem.Text = "Add User...";
            mnuSubMenuItem.NavigateUrl = "ADDURL.aspx";

            MenuItem mnuSubMenuItem1 = new MenuItem();
            newMenuItem1.ChildItems.Add(mnuSubMenuItem1);
            mnuSubMenuItem1.Text = "Edit User...";
            mnuSubMenuItem1.NavigateUrl = "EDITURL.aspx";
            this.MenuMaster.Items.Add(newMenuItem1);