Хочу подменю по щелчку правой кнопкой мыши ToolStripMenuItem - C#

У меня есть один элемент управления Toolstrip внутри, я добавляю несколько ToolStripMenuItem. Для каждого ToolStripMenuItem я хочу одно подменю (например, Закрыть). И щелчок правой кнопкой мыши на любом ToolStripMenuItem, который должно отображаться в подменю.

ToolStripMenuItem subMenuitem1 = new ToolStripMenuItem("Close");
items.DropDownItems.Add(subMenuitem1);

Но это не работает. Пожалуйста, предложите мне что-нибудь. Благодарю вас

1 ответ

Решение

Что такое объект "предметы"?

Добавление подменю:

// new menu, if you're using designer you should have it already
ContextMenuStrip mnu = new ContextMenuStrip();

// new tool strip item
ToolStripMenuItem mnuItem1 = new ToolStripMenuItem();
mnuItem1.Text = "Some text 1";
mnuItem1.Name = "mnuItem1";

// new submenu item
ToolStripMenuItem mnuItem2 = new ToolStripMenuItem();
mnuItem2.Text = "Some text 2";
mnuItem2.Name = "mnuItem2";

// connect them...
mnuItem1.DropDownItems.Add(mnuItem2);
mnu.Add(mnuItem1);

Теперь это вопрос подписки на события.

Вы хотите, чтобы подменю появлялось при щелчке правой кнопкой мыши. Обычно это появляется, когда мышь наводит курсор на элемент, который имеет подменю. Так что, если вы настроены сделать это по-своему, я полагаю, вам придется добавить его вручную, когда щелкнет правой кнопкой мыши основной toolStripItem.

ToolStripMenuItem не имеет события MouseClick. Вы можете запомнить, какая кнопка мыши была нажата в событии MouseDown, а затем обработать ее в событии Click.

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

Другие вопросы по тегам