C #: Как добавить полное ContextMenu в MenuItem в качестве подменю - PullRequest
2 голосов
/ 27 января 2011

Использование .NET и Windows Forms:

Какой самый лучший способ добавить ContextMenu к MenuItem?

Я имею в виду:

private void AddSubMenu(MenuItem item, ContextMenu menu)
{
   // I want to add the full menu to the menu item as a submenu

   // I could iterate the items of the menu and add them to the item
   // but I guess that there is a smarter way to do this
}

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 27 января 2011

На самом деле, это действительно просто:

private void AddSubMenu(MenuItem item, ContextMenu contextMenu)
{
    item.MergeMenu(contextMenu);
}

и, очевидно, все обработчики событий, подписанные до слияния, все еще будут работать и будут запускаться обоими меню.

0 голосов
/ 27 января 2011

Ну, я не нашел более умного способа, чем итерация стратегии. Однако вы можете оставить это для функции AddRange . Таким образом, ваш код становится.

private void AddSubMenu(MenuItem item, ContextMenu menu)
{
    item.MenuItems.AddRange(menu.MenuItems);
}

MenuItems возвращают MenuItemCollection, и Addrange принимает такую ​​коллекцию, чтобы и она была удовлетворена, и мы избавились от выполнения итерации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...