如何将子菜单项添加到菜单项中

9
我在Windows窗体中创建了一个表格布局,如图所示,并为我的表格添加了右键菜单。
我想要将以下菜单项添加到子菜单中:
当我点击“添加设备”时,应该显示诸如“声光报警器”,“手动呼叫点”,“闪光灯”等子项。 当我点击“故障”时,应显示诸如“开路故障”,“声光报警器故障”,“短路故障”等子项。
这是我创建菜单项的方式。
    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);

以下是我的表单和表格布局:

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

4个回答

32

您可以像这样将MenuItems添加到现有的MenuItem中:

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

它将会像这样显示:

在此输入图片描述


1
如何为这些子菜单项添加点击事件? - hs.chandra
2
@hs.chandra,你可以通过重载构造函数添加事件。 - Habib

1
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);

0

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

// 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);  

0
你可以添加这个。
var someMenu= new MenuItem("Foo");
someMenu.MenuItems.Add( new MenuItem("foo "));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接