Como: Inserir um MenuStrip em um Menu MDI Drop-Down (Windows Forms)
Em algumas aplicações, o tipo de janela filha da interface de múltiplos documentos (MDI) pode ser diferente da janela mãe da MDI. Por exemplo, o pai MDI pode ser uma planilha e o filho MDI pode ser um gráfico. Nesse caso, pretende atualizar o conteúdo do menu do pai MDI com o conteúdo do menu do filho MDI, à medida que são ativadas janelas filho(a) MDI de diferentes tipos.
O procedimento a seguir utiliza as propriedades IsMdiContainer, AllowMerge, MergeActione MergeIndex para inserir um grupo de itens de menu do menu filho MDI na seção suspensa do menu pai MDI. Fechar a janela filha MDI remove os itens de menu inseridos do MDI pai.
Para inserir um MenuStrip num menu pendente MDI
Crie um formulário e defina a propriedade IsMdiContainer como
true
.Adicione um MenuStrip ao
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 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 itens de submenu ao menu
&File
deForm2
na seguinte ordem: um ToolStripSeparator,&Save
,Save and &Close
e outro ToolStripSeparator.Defina as propriedades MergeAction e MergeIndex dos itens de menu
Form2
, conforme mostrado na tabela a seguir.Item de menu do Form2 Valor de MergeAction Valor MergeIndex Ficheiro MatchOnly -1 Separador Inserir 2 Gravar Inserir 3 Guardar e Fechar Inserir 4 Separador Inserir 5 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 conjuntos System e System.Windows.Forms.
Ver também
.NET Desktop feedback