Mesclando itens de menu no controle MenuStrip do Windows Forms
Se você tiver um aplicativo de interface de vários documentos (MDI), 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 fusão envolvem um controle de 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 atual. Por exemplo, você normalmente lista filhos MDI que estão atualmente abertos no menu Janela
A propriedade IsMdiWindowListEntry identifica quais itens do menu são provenientes de um MenuStrip num formulário filho MDI.
Você pode mesclar itens de menu manualmente 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" mais adiante neste tópico. Na mesclagem manual e automática, cada ação de mesclagem afeta a próxima ação de mesclagem.
A fusão do MenuStrip move os itens de menu de um ToolStrip para outro em vez de cloná-los, como foi o caso do MainMenu.
Valores de MergeAction
Você define a ação de fusão nos itens do menu na 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.
MergeAction Valor | Descrição | Uso típico |
---|---|---|
Append | (Padrão) Adiciona o item de origem ao final da coleção do item de destino. | Adicionar 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. | Adicionar 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 na ordem inversa. Defina MergeIndex apropriadamente 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 ou usa o valor MergeIndex se não houver correspondência encontrada e, em seguida, adiciona todos os itens suspensos da origem ao destino. | Criação de 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 uma janela secundária MDI a um menu principal MenuStripSalvar Como. MatchOnly permite que você navegue pela estrutura do menu sem tomar 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. | Remover um item de menu do destino MenuStrip. |
Fusão manual
Apenas os controlos MenuStrip participam na fusão automática. Para combinar os itens de outros controles, como controles ToolStrip e StatusStrip, você deve mesclá-los manualmente, chamando os métodos Merge e RevertMerge em seu código, conforme necessário.
Fusão 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 para o MenuStrip de destino para que as ações de mesclagem executadas no MenuStrip de origem sejam refletidas no MenuStripde destino.
Você pode acionar a mesclagem automática ativando o MenuStrip na fonte MDI. Após a ativação, a origem MenuStrip é incorporada no destino MDI. Quando um novo formulário se torna ativo, a mesclagem é revertida no último formulário e acionada 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.
Ver também
.NET Desktop feedback