Como remover um ToolStripMenuItem de um menu de Drop-Down MDI (Windows Forms)
Em alguns aplicativos, o tipo de janela filha em uma interface de vários documentos (MDI) pode ser diferente da janela mãe na interface de múltiplos documentos. Por exemplo, o pai MDI pode ser uma planilha e o filho MDI pode ser um gráfico. Nesse caso, você deseja atualizar o conteúdo do menu do pai MDI com o conteúdo do menu filho MDI quando são ativadas janelas filho MDI de diferentes tipos.
O procedimento a seguir usa as propriedades IsMdiContainer, AllowMerge, MergeActione MergeIndex para remover um item de menu da parte suspensa do menu pai do MDI. Fechar a janela filha do MDI restaura os itens de menu removidos no menu pai do MDI.
Para remover um MenuStrip de um menu suspenso MDI
Crie um formulário e defina sua propriedade IsMdiContainer como
true
.Adicione um MenuStrip para
Form1
e defina a propriedade AllowMerge do MenuStrip comotrue
.Adicione um item de menu de nível superior ao
Form1
MenuStrip e defina sua propriedade Text como&File
.Adicione três itens de submenu ao item de menu
&File
e defina suas propriedades Text como&Open
,&Import from
eE&xit
.Adicione dois itens de submenu ao item de submenu
&Import from
e defina suas propriedades de Text como&Word
e&Excel
.Adicione um formulário ao projeto, adicione um MenuStrip ao formulário e defina a propriedade AllowMerge do
Form2
MenuStrip comotrue
.Adicione um item de menu de nível superior ao
Form2
MenuStrip e defina sua propriedade Text como&File
.Adicione um item de submenu
&Import from
ao menu&File
deForm2
e adicione um item de submenu&Word
ao menu&File
.Defina as propriedades MergeAction e MergeIndex dos itens de menu
Form2
, conforme mostrado na tabela a seguir.Item de menu Form2 Valor MergeAction Valor do MergeIndex Arquivo MatchOnly -1 Importar de MatchOnly -1 Palavra Retirar -1 Em
Form1
, crie um manipulador de eventos para o evento Click do&Open
ToolStripMenuItem.No manipulador de eventos, insira um código semelhante ao exemplo de código a seguir para criar e exibir novas instâncias de
Form2
como filhos MDI deForm1
:Private Sub openToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openToolStripMenuItem.Click Dim NewMDIChild As New Form2() 'Set the parent form of the child window. NewMDIChild.MdiParent = Me 'Display the new form. NewMDIChild.Show() End Sub
private void openToolStripMenuItem_Click(object sender, EventArgs e) { Form2 newMDIChild = new Form2(); // Set the parent form of the child window. newMDIChild.MdiParent = this; // Display the new form. newMDIChild.Show(); }
Coloque um código semelhante ao exemplo de código a seguir no
&Open
ToolStripMenuItem para registrar o manipulador de eventos.Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
Compilando o código
Este exemplo requer:
Dois controles Form chamados
Form1
eForm2
.Um controle MenuStrip em
Form1
chamadomenuStrip1
e um controle MenuStrip emForm2
chamadomenuStrip2
.Referências aos assemblies System e System.Windows.Forms.
Consulte também
- Como: Criar Formulários Pai MDI
- Como criar Formulários Filhos MDI
- Visão geral do controle MenuStrip
.NET Desktop feedback