Как добавить пункты подменю в contextmenustrip с помощью C#4.0?

У меня есть один элемент управления contextmenustrip, связанный с treenode. Я создал один пункт меню в contextmenustrip вручную в самой форме (например, с именем "назначить").

теперь я хочу добавлять подменю всякий раз, когда пользователь нажимает этот пункт назначения, он создаст список имен пользователей в качестве подменю с проверенной или непроверенной опцией.

например, как только пользователь нажал "назначить", я хочу показать имя пользователя динамически.

2 ответов


чтобы добавить элемент, вы бы позвонили

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

чтобы добавить подменю, вы берете существующий элемент и делаете то же самое с ним:

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

определите полосу меню и пункты

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