Объединение элементов меню в элементе управления MenuStrip в Windows Forms
Если у вас есть приложение многодокументного интерфейса (MDI), вы можете объединить элементы меню или целые меню из дочерней формы в меню родительской формы.
В этом разделе описываются основные понятия, связанные с объединением элементов меню в приложении MDI.
Общие понятия
Процедуры объединения включают в себя как целевое управление, так и исходное управление.
Цель — это элемент управления MenuStrip в главной или родительской форме MDI, в которой вы объединяете элементы меню.
Источником является элемент управления MenuStrip дочерней формы MDI, содержащей элементы меню, которые необходимо объединить в целевое меню.
Свойство MdiWindowListItem определяет элемент меню, раскрывающийся список которого вы заполняете заголовками текущих дочерних элементов MDI родительской формы MDI. Например, вы обычно перечисляете дочерние элементы MDI, которые в настоящее время открыты в меню окна
Свойство IsMdiWindowListEntry определяет, какие элементы меню приходят из MenuStrip в дочерней форме MDI.
Элементы меню можно объединить вручную или автоматически. Элементы меню объединяются одинаково для обоих методов, но слияние активируется по-разному, как описано в разделах "Слияние вручную" и "Автоматическое слияние" далее в этом разделе. В ручном и автоматическом слиянии каждое действие слияния влияет на следующее действие слияния.
MenuStrip слияние перемещает элементы меню из одной ToolStrip в другую, а не клонирует их, в отличие от случая с MainMenu.
Значения MergeAction
Действие слияния для элементов меню в исходном MenuStrip задается с помощью свойства MergeAction.
В следующей таблице описано значение и типичное использование доступных действий слияния.
Значение MergeAction | Описание | Типичное использование |
---|---|---|
Append | (по умолчанию) Добавляет исходный элемент в конец коллекции целевого элемента. | Добавление элементов меню в конец меню при активации какой-то части программы. |
Insert | Добавляет исходный элемент в коллекцию целевого элемента в расположении, указанном свойством MergeIndex, заданным в исходном элементе. | Добавление элементов меню в середину или в начало меню при активации какой-либо части программы. Если значение MergeIndex одинаково для обоих элементов меню, они добавляются в обратном порядке. Задайте MergeIndex соответствующим образом, чтобы сохранить исходный порядок. |
Replace | Находит текстовое совпадение или использует значение MergeIndex, если не найдено совпадение текста, а затем заменяет соответствующий целевой элемент меню исходным элементом меню. | Замена элемента целевого меню элементом исходного меню с тем же именем, но выполняющим другую функцию. |
MatchOnly | Находит текстовое совпадение или использует значение MergeIndex, если текстовое совпадение не найдено, а затем добавляет все раскрывающиеся списки из источника в целевую среду. | Создание структуры меню, которая вставляет или добавляет элементы меню в подменю или удаляет элементы меню из подменю. Например, можно добавить пункт меню из дочернего элемента MDI в главное MenuStripменю "Сохранить как". MatchOnly позволяет перемещаться по структуре меню без каких-либо действий. Он предоставляет способ оценки последующих элементов. |
Remove | Находит текстовое совпадение или использует значение MergeIndex, если совпадение не найдено, после чего удаляет элемент из цели. | Удаление элемента меню из целевого MenuStrip. |
Слияние вручную
В автоматическом слиянии участвуют только элементы управления MenuStrip. Чтобы объединить элементы других элементов управления, такие как ToolStrip и StatusStrip элементы управления, их необходимо объединить вручную, вызвав методы Merge и RevertMerge в коде по мере необходимости.
Автоматическое слияние
Автоматическое слияние для приложений MDI можно использовать, активировав исходную форму. Чтобы использовать MenuStrip в приложении MDI, задайте для свойства MainMenuStrip целевое MenuStrip, чтобы объединение действий, выполняемых в исходном MenuStrip, отражается в целевом MenuStrip.
Автоматическое слияние можно активировать, активировав MenuStrip в источнике MDI. После активации исходный MenuStrip объединяется с целевым объектом MDI. Когда новая форма становится активной, слияние отменяется на последней форме и активируется в новой форме. Это поведение можно контролировать, задав свойство MergeAction по мере необходимости для каждого ToolStripItem, а также задав свойство AllowMerge для каждого MenuStrip.
См. также
.NET Desktop feedback