Procedura: aggiungere un MenuStrip a una finestra padre MDI (Windows Form)

In alcune applicazioni il tipo di una finestra figlio MDI (Multiple Document Interface, interfaccia a documenti multipli) può essere diverso dalla finestra padre MDI. La finestra padre MDI, ad esempio, potrebbe essere un foglio di lavoro mentre la finestra figlio MDI un grafico. In tal caso è necessario aggiornare il contenuto del menu del padre MDI con quello del menu del figlio MDI in quanto sono attivate finestre figlio MDI di tipi diversi.

Nella procedura riportata di seguito sono utilizzate le proprietà IsMdiContainer, AllowMerge, MergeAction e MergeIndex per aggiungere il menu del figlio MDI al menu del padre MDI. Se la finestra figlio MDI viene chiusa, il menu aggiunto al padre MDI viene eliminato.

Per ulteriori informazioni, vedere Applicazioni MDI (Interfaccia a documenti multipli, Multiple-Document Interface) e Applicazioni MDI (Interfaccia a documenti multipli, Multiple-Document Interface) e Applicazioni MDI (Interfaccia a documenti multipli, Multiple-Document Interface) e Applicazioni MDI (Interfaccia a documenti multipli, Multiple-Document Interface).

Per aggiungere una voce di menu a un padre MDI

  1. Creare un form e impostarne la proprietà IsMdiContainer su true.

  2. Aggiungere una classe MenuStrip a Form1 e impostare la proprietà AllowMerge di MenuStrip su true.

  3. Impostare la proprietà Visible del controllo Form1 MenuStrip su false.

  4. Aggiungere una voce di menu di primo livello alla classe MenuStrip di Form1 e impostarne la proprietà Text su &File.

  5. Aggiungere una voce di sottomenu alla voce di menu &File e impostare la relativa proprietà Text su &Open.

  6. Aggiungere un form al progetto, aggiungere una classe MenuStrip al form e impostare la proprietà AllowMerge del MenuStrip di Form2 su true.

  7. Aggiungere una voce di menu di primo livello alla classe MenuStrip di Form2 e impostare la relativa proprietà Text su &Special.

  8. Aggiungere due voci di sottomenu alla voce di menu &Special e impostare le relative proprietà Text rispettivamente su Command&1 e Command&2.

  9. Impostare la proprietà MergeAction delle voci di menu &Special, Command&1 e Command&2 su Append.

  10. Creare un gestore eventi per l'evento Click della classe ToolStripMenuItem di &New.

  11. All'interno del gestore eventi inserire codice simile a quello dell'esempio riportato di seguito per creare e visualizzare nuove istanze di Form2 come istanze figlio MDI di 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
    

    [C#]

    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. Inserire codice analogo a quello dell'esempio seguente nella classe ToolStripMenuItem di &Open per registrare il gestore eventi.

    Private Sub openToolStripMenuItem_Click(sender As Object, e As _
    EventArgs) Handles openToolStripMenuItem.Click
    
    this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
    

Compilazione del codice

Per questo esempio sono necessari i seguenti requisiti: