0

私はまだコンピュータ上のすべての入力デバイスを表示するメニューを取得することに取り組んでいます.おそらく非常に単純なものである私の3番目の質問を許してください.

コードは次のとおりです。

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

{} の外で、それが正しい方法だった場合に備えてですが、それは役に立ちませんでした。

私は何が欠けていますか?

4

1 に答える 1

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

それらを追加しているだけです。

于 2013-09-04T19:52:17.977 に答える