在C#中运行时添加菜单项

时间:2013-09-04 19:48:34

标签: c# drop-down-menu click

我仍在努力获取一个显示计算机上所有输入设备的菜单 - 请原谅我的第三个问题,这可能非常简单。

以下是代码:

List<MenuItem> inputDevice = new List<MenuItem>();
MenuItem myMenuItemInputDevices = new MenuItem("&Input Devices");
sgFileMenu.MenuItems.Add(myMenuItemInputDevice);
for (int i = 0; i < DeviceCount; i++)
{
    inputDeviceMenu.Add(new MenuItem(inputName[i]));
    myMenuItemInputDevices.MenuItems.Add(inputDeviceMenu[i]);
    myMenuItemInputDevices.Click += new System.EventHandler(this.myMenuItemInputDeviceClick);
}

这似乎工作正常,菜单项已添加,一切都很好,但点击下拉列表不起作用。我已经完成了菜单的其他工作,其他代码中的点击工作正常。我试过把

myMenuItemInputDevices.Click += new System.EventHandler(this.myMenuItemInputDeviceClick);
在{}之外的

,以防这是正确的方法,但这没有帮助。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

你想要这个

List<MenuItem> inputDevice = new List<MenuItem>();
MenuItem myMenuItemInputDevices = new MenuItem("&Input Devices");
sgFileMenu.MenuItems.Add(myMenuItemInputDevice);
for (int i = 0; i < DeviceCount; i++)
{
    inputDeviceMenu.Add(new MenuItem(inputName[i]));
    inputDeviceMenu[i].Click += new System.EventHandler(this.myMenuItemInputDeviceClick);
    myMenuItemInputDevices.MenuItems.Add(inputDeviceMenu[i]);
    myMenuItemInputDevices.Click += new System.EventHandler(this.myMenuItemInputDeviceClick);
}

编辑:很明显,您尝试添加的菜单项没有连接任何Click事件方法。

    inputDeviceMenu.Add(new MenuItem(inputName[i]));

您只是添加它们。