Gewusst wie: Entfernen eines ToolStripMenuItem aus einem 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.

Im folgenden Verfahren werden die Eigenschaften IsMdiContainer, AllowMerge, MergeAction und MergeIndex verwendet, um ein Menüelement aus dem Dropdownteil des übergeordneten MDI-Menüs zu entfernen. Das Schließen des untergeordneten MDI-Fensters stellt die entfernten Menüelemente im übergeordneten MDI-Menü wieder her.

So entfernen Sie eine MenuStrip-Instanz aus einem MDI-Dropdownmenü

  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 ein &Import from-Untermenüelement zum &File-Menü von Form2 hinzu, und fügen Sie ein &Word-Untermenüelement zum &File-Menü hinzu.

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

    Form2-Menüelement MergeAction-Wert MergeIndex-Wert
    Datei MatchOnly -1
    Importieren aus MatchOnly -1
    Word Remove (Entfernen) -1
  10. Erstellen Sie in Form1 einen Ereignishandler für das Click-Ereignis des &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