Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по C#.doc
Скачиваний:
327
Добавлен:
08.11.2018
Размер:
5.81 Mб
Скачать
        1. Программное меню MenuStrip

Элемент управления MenuStrip поддерживает интерфейс MDI, слияние меню, всплывающие подсказки и переполнение. Удобство использования меню можно повысить, добавив в них клавиши быстрого доступа, сочетания клавиш, флажки, значки и разделители.

Элемент управления MenuStrip может использоваться в следующих целях.

  • Создание легко настраиваемых, стандартных меню, поддерживающих широкий набор возможностей компоновки и пользовательского интерфейса, таких как упорядочение и выравнивание текста и изображений, операции перетаскивания, интерфейс MDI, переполнение и альтернативные режимы доступа к пунктам меню.

  • Поддержка типового вида и поведения операционной системы.

  • Согласованная обработка событий для всех контейнеров и содержащихся в них элементов аналогично обработке событий для других элементов управления.

Чтобы создать программное меню

  1. Выберите в Панели элементов на вкладке Меню и панели инструментов элемент управления MenuStrip и добавьте его на форму.

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

  1. Выберите поле MenuItem в списке с надписью "Введите здесь" в строке меню.

или

выберите в контекстном меню к иконке созданного программного меню MenuItem команду Правка элементов.

В результате появится новый пункт меню под названием toolStripMenuItem1.

  1. В окне Свойства в свойстве Text введите название нового меню, например "Файл".

Как только вы присвоите название новому меню в строке меню, справа появится поле нового элемента (чтобы вы могли добавить новое меню), а другое меню нового элемента откроется под первым меню, чтобы вы могли добавлять подменю.

Синхронизация меню на разных формах

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

В следующей процедуре свойства IsMdiContainer, AllowMerge, MergeAction и MergeIndex используются для добавления дочернего меню MDI в родительское меню MDI. При закрытии дочернего окна MDI из родительского интерфейса MDI удаляются добавленные пункты меню.

Пусть существуют родительская форма Form1 с программным меню и дочерняя форма Form2 со своим программным меню.

Чтобы добавить пункт дочернего меню в родительский интерфейс MDI

  1. Добавьте MenuStrip в Form1 и присвойте свойству AllowMerge компонента MenuStrip значение true.

  2. На форме Form2 присвойте свойству AllowMerge меню MenuStrip значение true.

  3. Свойству MergeAction элементов меню дочерней формы, которые должны автоматически добавиться в родительское меню присвойте значение Append.

Пример.

Пусть Меню формы Form1 имеет вид:

Меню формы Form2 имеет вид:

Если выполнить только первые два шага алгоритма создания синхронизированного меню, то получим два пункта Формы при открытии дочерней формы:

Свойство MergeAction имеет несколько значений:

  • Append – последовательно слева направо добавляет пункты дочернего меню вместе с подпунктами в родительское меню.

  • Insert – вставляет пункт дочернего меню вместе с подпунктами в родительское меню в соответствии с индексом, заданным в свойстве MergeIndex. Если MergeIndex=-1, то дочернее меню остается в дочерней форме, например:

  • Replace – ищет текстовое совпадение пунктов родительского и дочернего меню. Если текстовое совпадение найдено, то заменяет родительское меню дочерним меню, например:

  • Remove – удаляет родительское меню, например:

  • MarchOnly – ищет текстовое совпадение пунктов родительского и дочернего меню. Если текстовое совпадение найдено, то оставляет оба меню, но подпункты из совпадающих меню добавляются в родительское. Дочернее меню видимо, но неактивно. Например:

Примечание. Каждое меню дочерней формы обрабатывается отдельно. В данном примере у подменю Закрыть свойство MergeAction имеет значение Append. Если его поменять на другое значение, эффект будет иным.