Freigeben über


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

In einigen Anwendungen kann sich die Art eines untergeordneten Fensters für eine Schnittstelle für mehrere Dokumente (Multiple-Document Interface, MDI) von der des übergeordneten MDI-Fensters unterscheiden. Beispielsweise könnte das übergeordnete MDI-Fenster eine Tabellenkalkulation und das untergeordnete MDI-Fenster ein Diagramm enthalten. In diesem Fall möchten Sie 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 sind.

Im folgenden Verfahren werden die Eigenschaften IsMdiContainer, AllowMerge, MergeAction und MergeIndex verwendet, um eine Gruppe von Menüelementen aus dem untergeordneten MDI-Menü in den Dropdown-Teil 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 true fest.

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

  3. Fügen Sie ein Menüelement der obersten Ebene zu Form1MenuStrip hinzu, und legen Sie die entsprechende 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 fromund E&xitfest.

  5. Fügen Sie dem untergeordneten Menüelement &Import from zwei untergeordnete Menü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 anschließend eine MenuStrip-Klasse hinzu, und legen Sie die AllowMerge-Eigenschaft von Form2MenuStrip auf true fest.

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

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

  9. Legen Sie die Eigenschaften der MergeAction-Menüelemente MergeIndex und Form2 fest, wie in der nachfolgenden Tabelle aufgeführt.

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

  11. Fügen Sie im Ereignishandler Code ein, ähnlich wie im folgenden Codebeispiel, um neue Instanzen von Form2 als MDI-Kinder von Form1 zu erstellen und anzeigen.

    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);
    

Code kompilieren

In diesem Beispiel ist Folgendes erforderlich:

  • Zwei Form-Steuerelemente namens Form1 und Form2

  • Ein MenuStrip-Steuerelement für Form1 mit dem Namen menuStrip1 sowie ein MenuStrip-Steuerelement für Form2 mit dem Namen menuStrip2

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

Siehe auch