0

私はContextMenuStripコードで作成したものを持っています:

ContextMenuStrip menu;
public Loader()
{
    menu = new ContextMenuStrip();
    menu.Items.Add("Set Complete");
    menu.Items.Add("Set Review");
    menu.Items.Add("Set Missing");
}

特定のアイテムがクリックされたときに実行されるコードを追加する必要があります。これまでのところ、私はこれを試しました:

if (menu.Items[0].Selected)
{
    //code
}

if (menu.Items[1].Selected)
{
    //code
}

if (menu.Items[2].Selected)
{
   //code
}

でも(びっくり、びっくり)うまくいかない。

アイテムごとにイベント ハンドラーをセットアップする必要があると思いますが、ContextMenuStripwith コードを作成したため、これを行う方法がわかりません。

4

2 に答える 2

2

クリック イベントをサブスクライブする必要があります。サンプルを変更したので、動作するはずです:

public Loader()
{
    var menu = new ContextMenuStrip();
    var menuItem = menu.Items.Add("Set Complete");
    menuItem.Click += OnMenuItemSetCompleteClick;
    menuItem = menu.Items.Add("Set Review");
    menuItem.Click += OnMenuItemSetReviewClick;
    menuItem = menu.Items.Add("Set Missing");
    menuItem.Click += OnMenuItemSetMissingClick;
}

private void OnMenuItemSetCompleteClick(object sender, EventArgs e)
{
    // Do something
}

private void OnMenuItemSetReviewClick(object sender, EventArgs e)
{
    // Do something
}

private void OnMenuItemSetMissingClick(object sender, EventArgs e)
{
    // Do something
}
于 2011-12-15T12:15:21.553 に答える
2

個々のメニュー項目 (Clickイベント ) または ContextMenuStrip 自体 (ItemClickedイベント ) にイベント ハンドラーを追加する必要があります。

こちらをご覧ください: ContextMenuStrip 項目のクリックに応答する方法

于 2011-12-15T12:12:22.010 に答える