Compartilhar via


Como acrescentar um MenuStrip a uma janela pai do MDI (Windows Forms)

Em alguns aplicativos, o tipo de janela filha em uma Interface de Múltiplos Documentos (MDI) pode ser diferente da janela pai na MDI. 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 à medida que janelas filho MDI de diferentes tipos são ativadas.

O procedimento a seguir usa as propriedades IsMdiContainer, AllowMerge, MergeAction e MergeIndex para acrescentar o menu filho MDI ao menu pai MDI. Fechar a janela filha do MDI remove o menu acrescentado do MDI pai.

Consulte também Multiple-Document Interface (Aplicativos MDI).

Para acrescentar um item de menu a um pai MDI

  1. Crie um formulário e ajuste a propriedade IsMdiContainer dele para true.

  2. Adicione um MenuStrip a Form1 e defina a propriedade AllowMerge de MenuStrip para true.

  3. Defina a propriedade Visible do Form1MenuStrip para false.

  4. Adicione um item de menu de nível superior ao Form1MenuStrip e defina sua Text propriedade como &File.

  5. Adicione um item de submenu ao item de &File menu e defina sua Text propriedade como &Open.

  6. Adicione um formulário ao projeto, adicione um MenuStrip ao formulário e defina a propriedade AllowMerge do Form2MenuStrip como true.

  7. Adicione um item de menu de nível superior ao Form2MenuStrip e defina sua Text propriedade como &Special.

  8. Adicione dois itens de submenu ao item de &Special menu e defina suas Text propriedades como Command&1 e Command&2, respectivamente.

  9. Defina a propriedade dos itens de menu MergeAction, &Special e Command&1 para Command&2.

  10. Criar um manipulador de eventos para o evento Click do &OpenToolStripMenuItem.

  11. 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 de 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();
    }
    
  12. Coloque um código semelhante ao exemplo de código nos &OpenToolStripMenuItem a seguir 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: