Gewusst wie: Einfügen eines MenuStrip in ein MDI-Dropdownmenü (Windows Forms)

In einigen Anwendungen kann sich die Art eines untergeordneten MDI-Fensters (Multiple-Document Interface) von der des übergeordneten MDI-Fensters unterscheiden. Beispielsweise könnte das übergeordnete MDI-Fenster eine Kalkulationstabelle und das untergeordnete MDI-Fenster ein Diagramm enthalten. In diesem Fall möchten Sie möglicherweise den Inhalt des Menüs des übergeordneten MDI-Fensters mit dem Inhalt des Menüs des untergeordneten MDI-Fensters aktualisieren, da untergeordnete MDI-Fenster unterschiedlicher Arten aktiviert werden.

In der folgenden Prozedur werden die Eigenschaften IsMdiContainer, AllowMerge, MergeAction und MergeIndex zum Einfügen einer Gruppe von Menüelementen aus dem untergeordneten MDI-Menü in den Dropdownbereich des übergeordneten MDI-Menüs verwendet. Beim Schließen des untergeordneten MDI-Fensters werden die eingefügten Menüelemente aus dem übergeordneten MDI-Fenster entfernt.

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

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

  2. Fügen Sie einen MenuStrip zu Form1 hinzu, und legen Sie die AllowMerge-Eigenschaft des MenuStrip auf true fest

  3. Fügen Sie ein Menüelement der obersten Ebene zu Form1MenuStrip hinzu, und legen Sie dessen Text-Eigenschaft auf &File fest.

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

  5. Fügen Sie dem &Import from-Untermenüelement zwei Untermenüelemente hinzu, und legen Sie deren Text-Eigenschaften auf &Word und &Excel fest.

  6. Fügen Sie dem Projekt ein Formular hinzu, fügen Sie dem Formular ein MenuStrip hinzu, und legen die AllowMerge-Eigenschaft von Form2MenuStrip auf true fest.

  7. Fügen Sie ein Menüelement der obersten Ebene zu Form2MenuStrip hinzu, und legen Sie dessen Text-Eigenschaft auf &File fest.

  8. Fügen Sie dem &File-Menü von Form2 in der folgenden Reihenfolge Untermenüelemente hinzu: ToolStripSeparator, &Save, Save and &Close und ToolStripSeparator.

  9. Legen Sie die Eigenschaften MergeAction undMergeIndex der Form2-Menüelemente wie in der folgenden Tabelle dargestellt fest.

    Form2-Menüelement MergeAction-Wert MergeIndex-Wert
    Datei MatchOnly -1
    Trennzeichen Einfügen 2
    Speichern Einfügen 3
    Speichern und schließen Einfügen 4
    Trennzeichen Einfügen 5
  10. Erstellen Sie einen Ereignishandler für das Click-Ereignis von &OpenToolStripMenuItem.

  11. Fügen Sie im Ereignishandler Code ein, der dem folgenden Codebeispiel ähnelt, um neue Instanzen von Form2 als untergeordnete MDI-Fenster von Form1 zu 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. Fügen Sie Code, der dem folgenden Codebeispiel ähnelt, in &OpenToolStripMenuItem ein, 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);  
    

Kompilieren des Codes

Für dieses Beispiel benötigen Sie Folgendes:

  • Zwei Form-Steuerelemente namens Form1 und Form2.

  • Ein MenuStrip-Steuerelement auf Form1, das den Namen menuStrip1 hat, und ein MenuStrip-Steuerelement auf Form2, das den Namen menuStrip2 hat.

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

Weitere Informationen