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

#c# #c#-4.0 #contextmenustrip

#c# #c #-4.0 #contextmenustrip

Вопрос:

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

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

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

Ответ №1:

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

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

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

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

Ответ №2:

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

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

Комментарии:

1. Спасибо, Камарадо, разбивка очень помогла!