Freigeben über


Vorgehensweise: Einfügen eines MenuStrips in ein MDI-Drop-Down-Menü (Windows Forms)

In einigen Anwendungen kann die Art eines untergeordneten MDI-Fensters (Multiple-Document Interface, MDI) vom übergeordneten MDI-Fenster abweichen. Ein Beispiel: Der MDI-Übergeordnete kann eine Kalkulationstabelle sein, und der MDI-Untergeordnete kann ein Diagramm sein. In diesem Fall möchten Sie den Inhalt des Menüs des übergeordneten MDI-Elements mit dem Inhalt des Menüs des untergeordneten MDI-Elements aktualisieren, da untergeordnete MDI-Fenster unterschiedlicher Art aktiviert werden.

Im folgenden Verfahren werden die Eigenschaften IsMdiContainer, AllowMerge, MergeActionund MergeIndex verwendet, um eine Gruppe von Menüelementen aus dem untergeordneten MDI-Menü in den Dropdownteil des übergeordneten MDI-Menüs einzufügen. Durch das Schließen des untergeordneten MDI-Fensters werden die eingefügten Menüelemente aus dem übergeordneten MDI-Fenster entfernt.

So fügen Sie ein MenuStrip in ein MDI-Dropdownmenü ein

  1. Erstellen Sie ein Formular, und legen Sie dessen IsMdiContainer-Eigenschaft auf truefest.

  2. Fügen Sie MenuStrip zu Form1 hinzu und legen Sie die AllowMerge-Eigenschaft des MenuStrip auf truefest.

  3. Fügen Sie ein Menüelement auf oberster Ebene dem Form1MenuStrip hinzu und legen Sie dessen Text Eigenschaft auf &Filefest.

  4. Fügen Sie dem &File Menüelement drei Untermenüelemente hinzu, und legen Sie deren Text Eigenschaften auf &Open, &Import fromund E&xitfest.

  5. Fügen Sie zwei Untermenüelemente zum &Import from-Untermenüelement hinzu und legen Sie deren Text-Eigenschaften auf &Word und &Excelfest.

  6. Fügen Sie dem Projekt ein Formular hinzu, fügen Sie eine MenuStrip zum Formular hinzu, und legen Sie die Eigenschaft AllowMerge des Form2MenuStrip auf truefest.

  7. Fügen Sie dem Form2MenuStrip einen Menüpunkt der obersten Ebene hinzu, und legen Sie dessen Text-Eigenschaft auf &Filefest.

  8. Fügen Sie dem Menü &File von Form2 in der folgenden Reihenfolge die Untermenüelemente hinzu: ToolStripSeparator, &Save, Save and &Closeund ein weiteres ToolStripSeparator.

  9. Legen Sie die Eigenschaften MergeAction und MergeIndex der Form2 Menüeinträge fest, wie in der folgenden Tabelle gezeigt.

    Formular2-Menüelement "MergeAction"-Wert MergeIndex-Wert
    Datei MatchOnly -1
    Trennvorrichtung Einfügen 2
    Retten Einfügen 3
    Speichern und Schließen Einfügen 4
    Trennzeichen Einfügen 5
  10. Erstellen Sie einen Ereignishandler für das Click-Ereignis der &OpenToolStripMenuItem.

  11. Fügen Sie im Ereignishandler Code ein, der dem folgenden Codebeispiel ähnelt, um neue Instanzen von Form2 als MDI-untergeordnete Elemente von Form1zu erstellen und anzuzeigen.

    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. Platzieren Sie einen Code, der dem folgenden Beispiel ähnelt, in der &OpenToolStripMenuItem, um den Ereignishandler zu registrieren.

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

Code kompilieren

In diesem Beispiel ist Folgendes erforderlich:

  • Zwei Form Steuerelemente mit den Bezeichnungen Form1 und Form2.

  • Ein MenuStrip-Steuerelement auf Form1 namens menuStrip1und ein MenuStrip-Steuerelement auf Form2 namens menuStrip2.

  • Verweise auf die Assemblys System und System.Windows.Forms.

Siehe auch