コンテキストメニューにアイテムを動的に追加&クリックアクションを設定する
-
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...");
}
所属していません StackOverflow