コンテキストメニューにアイテムを動的に追加&クリックアクションを設定する

StackOverflow https://stackoverflow.com/questions/225394

  •  03-07-2019
  •  | 
  •  

質問

5秒ごとに再生成される文字列のリストがあります。このリストを使用して、コンテキストメニューを作成し、そのアイテムを動的に設定します。 問題は、生成するすべてのアイテムのクリックアクションを管理する方法がわからないことです(異なるパラメーターDoSomething(" item_name")で同じメソッドを使用する必要があります)。

どうすればいいですか?

お時間をいただきありがとうございます。 よろしく。

役に立ちましたか?

解決

だから、コンテキストメニューから項目を消去できます:

myContextMenuStrip.Items.Clear();

次を呼び出してアイテムを追加できます:

myContextMenuStrip.Items.Add(myString);

コンテキストメニューにはItemClickedイベントがあります。ハンドラは次のようになります。

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    DoSomething(e.ClickedItem.Text);
}

私にとってはうまくいくようです。あなたの質問を誤解した場合はお知らせください。

他のヒント

ToolStripMenuItem オブジェクトを使用する別の方法:

//////////// Create a new "ToolStripMenuItem" object:
ToolStripMenuItem newMenuItem= new ToolStripMenuItem();

//////////// Set a name, for identification purposes:
newMenuItem.Name = "nameOfMenuItem";

//////////// Sets the text that will appear in the new context menu option:
newMenuItem.Text = "This is another option!";

//////////// Add this new item to your context menu:
myContextMenuStrip.Items.Add(newMenuItem);


myContextMenuStrip ItemClicked イベント内で、選択されたオプションを確認できます(メニュー項目のnameプロパティに基づいて

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    ToolStripItem item = e.ClickedItem;

    //////////// This will show "nameOfMenuItem":
    MessageBox.Show(item.Name, "And the clicked option is...");
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top