Compartilhar via


Mesclando itens de menu no controle MenuStrip do Windows Forms

Se você tiver um aplicativo MDI (interface de vários documentos), poderá mesclar itens de menu ou menus inteiros do formulário filho nos menus do formulário pai.

Este tópico descreve os conceitos básicos associados à mesclagem de itens de menu em um aplicativo MDI.

Conceitos gerais

Os procedimentos de mesclagem envolvem um destino e um controle de origem:

  • O destino é o controle MenuStrip no formulário pai principal ou MDI no qual você está mesclando itens de menu.

  • A origem é o controle MenuStrip no formulário filho MDI que contém os itens de menu que você deseja mesclar no menu de destino.

A propriedade MdiWindowListItem identifica o item de menu cuja lista suspensa você preencherá com os títulos dos filhos MDI do formulário pai MDI atual. Por exemplo, você normalmente lista os filhos MDI que estão abertos no menu da Janela .

A propriedade IsMdiWindowListEntry identifica quais itens de menu vêm de um MenuStrip em um formulário filho MDI.

Você pode mesclar itens de menu manual ou automaticamente. Os itens de menu mesclam da mesma maneira para ambos os métodos, mas a mesclagem é ativada de forma diferente, conforme discutido nas seções "Mesclagem Manual" e "Mesclagem Automática" posteriormente neste tópico. Na mesclagem manual e automática, cada ação de mesclagem afeta a próxima ação de mesclagem.

A mesclagem do MenuStrip move itens de menu de um ToolStrip para outro ToolStrip em vez de cloná-los, como foi o caso de MainMenu.

Valores de Ação de Mesclagem

Defina a ação de mesclagem nos itens de menu da origem MenuStrip usando a propriedade MergeAction.

A tabela a seguir descreve o significado e o uso típico das ações de mesclagem disponíveis.

Valor da ação de mesclagem Descrição Uso Típico
Append (Padrão) Adiciona o item de origem ao final da coleção do item de destino. Adicionando itens de menu ao final do menu quando alguma parte do programa é ativada.
Insert Adiciona o item de origem à coleção do item de destino, no local especificado pela propriedade MergeIndex definida no item de origem. Adicionando itens de menu ao meio ou ao início do menu quando alguma parte do programa é ativada.

Se o valor de MergeIndex for o mesmo para ambos os itens de menu, eles serão adicionados em ordem inversa. Defina MergeIndex adequadamente para preservar a ordem original.
Replace Localiza uma correspondência de texto ou usa o valor MergeIndex se nenhuma correspondência de texto for encontrada e, em seguida, substitui o item de menu de destino correspondente pelo item de menu de origem. Substituir um item de menu de destino por um item de menu de origem com o mesmo nome que faz algo diferente.
MatchOnly Localiza uma correspondência de texto; caso nenhuma seja encontrada, usa o valor MergeIndex e, em seguida, adiciona todos os itens do menu suspenso da origem ao destino. Criar uma estrutura de menu que insere ou adiciona itens de menu em um submenu ou remove itens de menu de um submenu. Por exemplo, você pode adicionar um item de menu de um filho MDI a um menu MenuStripSalvar como principal.

MatchOnly permite que você navegue pela estrutura do menu sem executar nenhuma ação. Ele fornece uma maneira de avaliar os itens subsequentes.
Remove Localiza uma correspondência de texto ou usa o valor MergeIndex se nenhuma correspondência de texto for encontrada e, em seguida, remove o item do destino. Removendo um item de menu do alvo MenuStrip.

Mesclagem manual

Somente controles MenuStrip participam da mesclagem automática. Para combinar os itens de outros controles, como os controles ToolStrip e StatusStrip, você deve mesclar manualmente, chamando os métodos Merge e RevertMerge no seu código, conforme necessário.

Mesclagem automática

Você pode usar a mesclagem automática para aplicativos MDI ativando o formulário de origem. Para usar um MenuStrip em um aplicativo MDI, defina a propriedade MainMenuStrip como o MenuStrip de destino para que as ações de mesclagem executadas no MenuStrip de origem sejam refletidas no MenuStripde destino.

Você pode iniciar a mesclagem automática ativando o MenuStrip na fonte MDI. Após a ativação, a fonte MenuStrip é mesclada no destino MDI. Quando um novo formulário se torna ativo, a mesclagem é revertida no último formulário e disparada no novo formulário. Você pode controlar esse comportamento definindo a propriedade MergeAction conforme necessário em cada ToolStripIteme definindo a propriedade AllowMerge em cada MenuStrip.

Consulte também