Поделиться через


Слияние элементов меню в элементе управления MenuStrip в Windows Forms

В приложении интерфейса MDI можно объединять пункты меню или целые меню из родительского окна 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.

См. также

Задачи

Практическое руководство. Создание списка в окне интерфейса MDI с помощью MenuStrip (Windows Forms)

Практическое руководство. Автоматическое слияние меню в приложениях MDI

Ссылки

ToolStripManager

MenuStrip

Другие ресурсы

Элемент управления MenuStrip (Windows Forms)