web-dev-qa-db-ja.com

C#4.0を使用してcontextmenustripにサブメニュー項目を追加する方法

Treenodeに関連付けられたcontextmenustripコントロールが1つあります。フォーム自体で、contextmenustripに1つのメニュー項目を手動で作成しました(たとえば、「割り当て」という名前が付けられています)。

ここで、ユーザーがこの割り当て項目をクリックするたびにサブメニュー項目を追加したいと思います。これにより、ユーザー名のリストがチェックされたオプションまたはチェックされていないオプションを持つサブメニュー項目として作成されます。

たとえば、ユーザーが[割り当て]をクリックしたら、ユーザー名を動的に表示します。

26
Saravanan

アイテムを追加するには、

myContextMenuStrip.Items.Add("Item title", null, myClickHandler);

サブメニューを追加するには、既存のアイテムを取得して、同じことを行います。

(myContextMenuStrip.Items[0] as ToolStripMenuItem).DropDownItems.Add(...)
45
Roman Starkov

メニューストリップとアイテムを定義する

ContextMenuStrip menu = new ContextMenuStrip();
ToolStripMenuItem item, submenu;

新しいアイテムを作成します。

submenu = new ToolStripMenuItem();
submenu.Text = "Sub-menu 1";

現時点では、新しいアイテムは他のアイテムと同じです。次に、いくつかの新しいアイテムを作成し、サブメニューに追加します。

item = new ToolStripMenuItem();
item.Text = "Sub-item 1";
submenu.DropDownItems.Add(item);

item = new ToolStripMenuItem();
item.Text = "Sub-item 2";
submenu.DropDownItems.Add(item);

最後に、メインのContextMenuStripにサブメニューを追加します

menu.Items.Add(submenu);
15
Kamarado