如何:从 MDI 下拉菜单移除 ToolStripMenuItem(Windows 窗体)

在某些应用程序中,多文档界面 (MDI) 子窗口的类型可以不同于 MDI 父窗口。 例如,MDI 父窗口可能为电子表格,而 MDI 子窗口可能为图表。 在这种情况下,由于激活了不同类型的 MDI 子窗口,你想用 MDI 子菜单上的内容更新 MDI 父菜单的内容。

以下过程使用 IsMdiContainerAllowMergeMergeActionMergeIndex 属性从 MDI 父菜单的下拉部分中移除菜单项。 关闭 MDI 子窗口后,已移除的菜单项将还原到 MDI 父菜单。

从 MDI 下拉菜单中移除 MenuStrip

  1. 创建一个窗体并将其 IsMdiContainer 属性设置为 true

  2. MenuStrip 添加到 Form1 并将 MenuStripAllowMerge 属性设置为 true

  3. 将顶级菜单项添加到 Form1MenuStrip 并将其 Text 属性设置为 &File

  4. 将三个子菜单项添加到 &File 菜单项,并将其 Text 属性分别设置为 &Open&Import fromE&xit

  5. 将两个子菜单项添加到 &Import from 子菜单项,并将其 Text 属性分别设置为 &Word&Excel

  6. 将窗体添加到项目,将 MenuStrip 添加该窗体,并将 Form2MenuStripAllowMerge 属性设置为 true

  7. 将顶级菜单项添加到 Form2MenuStrip 并将其 Text 属性设置为 &File

  8. Form2&File 菜单中添加 &Import from 子菜单项,在 &File 菜单中添加 &Word 子菜单项。

  9. 设置 Form2 菜单项的 MergeActionMergeIndex 属性,如下表所示。

    Form2 菜单项 MergeAction 值 MergeIndex 值
    文件 MatchOnly -1
    导入自 MatchOnly -1
    Word 删除 -1
  10. Form1 中,为 &OpenToolStripMenuItemClick 事件创建一个事件处理程序。

  11. 在事件处理程序中,插入类似于以下代码示例的代码,以创建 Form2 的新实例并将其显示为 Form1 的 MDI 子项:

    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. 将类似于以下示例代码的代码放在 &OpenToolStripMenuItem 中以注册事件处理程序。

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

编译代码

此示例需要:

另请参阅