Condividi tramite


Procedura: inserire un MenuStrip in un menu a discesa 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 seguente vengono utilizzate le proprietà IsMdiContainer, AllowMerge, MergeAction e MergeIndex per inserire un gruppo di voci di menu dal menu del figlio MDI alla parte a discesa del menu del padre MDI. Se la finestra figlio MDI viene chiusa, le voci di menu inserite nel padre MDI vengono eliminate.

Per inserire un MenuStrip in un menu a discesa 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. Aggiungere una voce di menu di primo livello alla classe MenuStrip di Form1 e impostarne la proprietà Text su &File.

  4. Aggiungere tre voci di sottomenu alla voce di menu &File e impostare le relative proprietà Text su &Open, &Import from e E&xit.

  5. Aggiungere due voci di sottomenu alla voce di sottomenu &Import from e impostare le relative proprietà Text su &Word e &Excel.

  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 &File.

  8. Aggiungere voci di sottomenu al menu &File di Form2 nell'ordine seguente: una classe ToolStripSeparator, &Save, &Close and Save e un'altra classe ToolStripSeparator.

  9. Impostare le proprietà MergeAction e MergeIndex delle voci di menu di Form2 come indicato nella tabella seguente.

    Voce di menu di Form2

    Valore di MergeAction

    Valore di MergeIndex

    File

    MatchOnly

    -1

    Separatore

    Insert

    2

    Salva

    Insert

    3

    Save and Close

    Insert

    4

    Separatore

    Insert

    5

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

  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:

Vedere anche

Attività

Procedura: creare form padre MDI

Procedura: creare form figlio MDI

Riferimenti

Cenni preliminari sul controllo MenuStrip (Windows Form)