Переключение между меню программным способом
По мере того как условия работы приложения изменяются, добавления или удаления элементов меню все меньше отвечают потребностям вашего приложения. Рано или поздно вы захотите заменить меню целиком. Вы можете полностью удалить элемент управления MenuStrip из формы, удалив его из коллекции Controls, и точно так же добавить новый элемент управления MenuStrip. Следующий пример демонстрирует, как во время выполнения удалять из формы MenuStrip 1 и заменять его MenuStrip2:
Имейте в виду, что добавляемое меню не должно быть элементом коллекции Controls.
Контекстные меню и элемент управленияContextMenuStrip
Контекстные меню знакомы всем пользователям приложений Windows Forms. Эти «быстрые» меню отображаются при щелчке правой кнопкой мышки объекта. Элемент управления ContextMenuStrip позволяет создавать контекстные меню и привязывать их к определенным объектам.
Рассматриваемый элемент управления похож на MenuStrip. Оба элемента управления имеют интуитивный интерфейс разработки, который позволяет быстро создавать элементы меню. Кроме того, они содержат коллекцию элементов меню, которую можно получить с помощью свойства Items. Основным отличием между этими элементами управления является то, что ContextMenuStrip не имеет меню верхнего уровня и во время выполнения не отображается до тех пор, пока вы его не вызовите щелчком правой кнопкой мыши элемента управления, привязанного к данному контекстному меню.
Добавление и удаление элементов контекстного меню
С помощью методов ContextMenuStrip.Items Add и ContextMenuStrip.Items.Remove можно легко добавлять или удалять элементы контекстного меню, как показано в следующем примере:
Привязка свойства ContextMenuStripк элементу управления
Все элементы управления которые могут отображать контекстное меню, предоставляют свойство ContextMenuStrip имеющее ссылку на контекстное меню данного элемента управления. Если этому свойству задан допустимый элемент управления ContextMenuStrip контекстное меню появится после щелчка правой кнопкой мыши такого элемента управления во время выполнения. Данное свойство можно установить во время разработки в окне Properties.
Задать значение свойству ContextMenuStrip можно также во время выполнения. Следующий пример демонстрирует, как динамически создать контекстное меню с уже существующими элементами меню и привязать его к элементу управления: