如何:将 MenuStrip 追加到 MDI 父窗口(Windows 窗体)

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

以下过程使用 IsMdiContainerAllowMergeMergeActionMergeIndex 属性将 MDI 子菜单追加到 MDI 父菜单。 关闭 MDI 子窗口会从 MDI 父窗口中删除追加菜单。

另请参阅 Multiple-Document 接口(MDI)应用程序

将菜单选项追加到 MDI 父窗口

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

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

  3. Visible 属性 Form1MenuStrip 设置为 false.

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

  5. 将子菜单项添加到 &File 菜单项,并将其 Text 属性设置为 &Open

  6. 将窗体添加到项目中,向窗体添加 MenuStrip,并将 AllowMergeForm2MenuStrip 属性设置为 true

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

  8. 将两个子菜单项添加到&Special菜单项,并分别将其Text属性设置为Command&1Command&2

  9. &SpecialCommand&1Command&2菜单项的MergeAction属性设置为Append

  10. Click&OpenToolStripMenuItem 事件创建事件处理程序。

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

编译代码

此示例需要: