Como remover um ToolStripMenuItem de um menu suspenso MDI (Windows Forms)
Em alguns aplicativos, o tipo de uma janela filho MDI (interface de vários documentos) pode ser diferente da janela MDI pai. Por exemplo, a MDI pai pode ser uma planilha e a MDI filho pode ser um gráfico. Nesse caso, é recomendável atualizar o conteúdo do menu da MDI pai com o conteúdo do menu da MDI filho, visto que janelas MDI filho de tipos diferentes são ativadas.
O procedimento a seguir usa as IsMdiContainerpropriedades , , AllowMergeMergeActione MergeIndex para remover um item de menu da parte suspensa do menu pai MDI. Fechar a janela filho MDI restaura os itens de menu removidos para o menu pai MDI.
Para remover um MenuStrip de um menu suspenso MDI
Crie um formulário e defina sua IsMdiContainer propriedade como
true
.Adicione um MenuStrip a e defina a AllowMerge
Form1
propriedade do MenuStrip paratrue
.Adicione um item de menu de nível superior ao
Form1
MenuStrip e defina sua Text propriedade como&File
.Adicione três itens de submenu ao item de
&File
menu e defina suas Text propriedades como&Open
,&Import from
eE&xit
.Adicione dois itens de submenu ao item de
&Import from
submenu e defina suas Text propriedades como&Word
e&Excel
.Adicione um formulário ao projeto, adicione um MenuStrip ao formulário e defina a AllowMerge propriedade do
Form2
MenuStrip paratrue
.Adicione um item de menu de nível superior ao
Form2
MenuStrip e defina sua Text propriedade como&File
.Adicione um item de submenu ao menu de e adicione um
&Import from
&Word
item deForm2
submenu ao&File
&File
menu.Defina as MergeAction propriedades e MergeIndex os itens de menu,
Form2
conforme mostrado na tabela a seguir.Item de menu Form2 Valor de MergeAction Valor de MergeIndex Arquivo MatchOnly -1 Importar do MatchOnly -1 Word Remover -1 No
Form1
, crie um manipulador de eventos para o Click evento do&Open
ToolStripMenuItem.Dentro do manipulador de eventos, insira código semelhante ao exemplo de código a seguir para criar e exibir novas instâncias de como filhos MDI de
Form2
Form1
: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 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 Form controles chamados
Form1
eForm2
.Um MenuStrip controle em named e um MenuStrip controle em
Form1
Form2
namedmenuStrip1
menuStrip2
.Referências aos assemblies System e System.Windows.Forms.
Confira também
.NET Desktop feedback