演练:创建具有菜单合并功能和 ToolStrip 控件的 MDI 窗体

System.Windows.Forms 命名空间支持多文档界面 (MDI) 应用程序,MenuStrip 控件支持菜单合并。 MDI 窗体还可支持 ToolStrip 控件。

本演练演示如何将 ToolStripPanel 控件用于 MDI 窗体。 该窗体还支持与子菜单的菜单合并。 本演练演示了以下任务:

  • 创建 Windows 窗体项目。

  • 创建窗体的主菜单。 菜单的实际名称将有所不同。

  • ToolStripPanel 控件添加到**“工具箱”**中。

  • 创建子窗体。

  • 按 Z 顺序排列 ToolStripPanel 控件。

完成这些步骤之后,您会得到一个支持菜单合并和可移动 ToolStrip 控件的 MDI 窗体。

若要将本主题中的代码作为一个单独的清单进行复制,请参见 如何:创建合并了菜单并具有 ToolStrip 控件的 MDI 窗体

提示

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置

系统必备

若要完成本演练,您需要:

  • 足以在安装了 Visual Studio 的计算机上创建和运行 Windows 窗体应用程序项目的权限。

创建项目

第一步是创建项目并设置窗体。

创建项目

  1. 创建名为“MdiForm”的 Windows 应用程序项目。

    有关更多信息,请参见如何:创建新的 Windows 窗体应用程序项目

  2. 在 Windows 窗体设计器中,选择该窗体。

  3. 在“属性”窗口中,将 IsMdiContainer 的值设置为 true。

创建主菜单

父 MDI 窗体包含主菜单。 主菜单有一个名为**“窗口”的菜单项。 使用“窗口”**菜单项,可以创建子窗体。 来自子窗体的菜单项将合并到主菜单中。

创建主菜单

  1. 从**“工具箱”**中将一个 MenuStrip 控件拖动到窗体上。

  2. MenuStrip 控件添加一个 ToolStripMenuItem,并将其命名为“窗口”。

  3. 选择 MenuStrip 控件。

  4. 在“属性”窗口中,将 MdiWindowListItem 属性的值设置为 ToolStripMenuItem1。

  5. 向**“窗口”**菜单项添加一个子项,并将其命名为“新建”。

  6. 在“属性”窗口中,单击**“事件”**。

  7. 双击 Click 事件。

    Windows 窗体设计器为 Click 事件生成一个事件处理程序。

  8. 将下面的代码插入到事件处理程序中。

    ' This method creates a new ChildForm instance 
    ' and attaches it to the MDI parent form.
     Private Sub newToolStripMenuItem_Click( _
     ByVal sender As Object, _
     ByVal e As EventArgs) _
     Handles newToolStripMenuItem.Click
    
         Dim f As New ChildForm()
         f.MdiParent = Me
         f.Text = "Form - " + Me.MdiChildren.Length.ToString()
         f.Show()
    
     End Sub
    
    // This method creates a new ChildForm instance 
    // and attaches it to the MDI parent form.
    private void newToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ChildForm f = new ChildForm();
        f.MdiParent = this;
        f.Text = "Form - " + this.MdiChildren.Length.ToString();
        f.Show();
    }
    

将 ToolStripPanel 控件添加到工具箱中

MenuStrip 控件用于 MDI 窗体时,必须具有 ToolStripPanel 控件。 必须在**“工具箱”**中添加 ToolStripPanel 控件,以便在 Windows 窗体设计器中构建 MDI 窗体。

将 ToolStripPanel 控件添加到工具箱中

  1. 打开**“工具箱”并单击“所有 Windows 窗体”**选项卡,以显示可用的 Windows 窗体控件。

  2. 单击右键打开快捷菜单,再选择**“选择项”**。

  3. 在**“选择工具箱项”对话框中,向下滚动“名称”列,直到找到“ToolStripPanel”**。

  4. 选择**“ToolStripPanel”旁边的复选框并单击“确定”**。

    ToolStripPanel 控件将出现在**“工具箱”**中。

创建子窗体

在此过程中,您将定义一个单独的子窗体类,其中包含它自己的 MenuStrip 控件。 此窗体的菜单项将与父窗体的菜单项合并。

定义子窗体

  1. 向项目中添加一个名为 ChildForm 的新窗体。

    有关更多信息,请参见如何:向项目添加 Windows 窗体

  2. 从**“工具箱”**中将一个 MenuStrip 控件拖动到该子窗体上。

  3. 单击 MenuStrip 控件的智能标记标志符号 (智能标记标志符号),然后选择**“编辑项”**。

  4. 在**“项集合编辑器”**对话框中,向子菜单中添加一个名为 ChildMenuItem 的新 ToolStripMenuItem

    有关更多信息,请参见 ToolStrip 项集合编辑器

测试窗体

测试窗体

  1. 按 F5 编译并运行窗体。

  2. 单击**“窗口”菜单项打开菜单,然后单击“新建”**。

    在该窗体的 MDI 工作区中将创建一个新的子窗体。 该子窗体的菜单将与主菜单合并。

  3. 关闭子窗体。

    该子窗体的菜单从主菜单中移除。

  4. 单击**“新建”**若干次。

    因为指定了 MenuStrip 控件的 MdiWindowListItem 属性,所以**“窗口”**菜单项下会自动列出子窗体。

添加 ToolStrip 支持

在此过程中,将向 MDI 父窗体添加四个 ToolStrip 控件。 每个 ToolStrip 控件均被添加到停靠于窗体边缘的一个 ToolStripPanel 控件中。

向 MDI 父窗体添加 ToolStrip 控件

  1. 从**“工具箱”**中将一个 ToolStripPanel 控件拖动到窗体上。

  2. 选择了 ToolStripPanel 控件之后,在**“工具箱”**中双击 ToolStrip 控件。

    ToolStripPanel 控件中会创建一个 ToolStrip 控件。

  3. 选择 ToolStripPanel 控件。

  4. 在“属性”窗口中,将控件的 Dock 属性值更改为 Left

    ToolStripPanel 控件将停靠于窗体的左侧,位于主菜单的下方。 调整 MDI 工作区的大小以容纳该 ToolStripPanel 控件。

  5. 重复步骤 1 到 4。

    将新的 ToolStripPanel 控件停靠在窗体的顶部。

    ToolStripPanel 控件停靠于主菜单的下方,但位于第一个 ToolStripPanel 控件的右侧。 此步骤说明 Z 顺序对于正确放置 ToolStripPanel 控件的重要性。

  6. 重复步骤 1 到步骤 4 以另外添加两个 ToolStripPanel 控件。

    将这两个新的 ToolStripPanel 控件分别停靠于窗体的右侧和底部。

按照 Z 顺序排列 ToolStripPanel 控件

ToolStripPanel 控件在 MDI 窗体上的停靠位置由该控件在 Z 顺序中的位置确定。 在“文档大纲”窗口中可以方便地排列控件的 Z 顺序。

按照 Z 顺序排列 ToolStripPanel 控件

  1. 单击**“视图”菜单中的“其他窗口”,再选择“文档大纲”**。

    在上面的过程中,ToolStripPanel 控件的排列是非标准排列。 这是因为 Z 顺序不正确。 请使用“文档大纲”窗口更改控件的 Z 顺序。

  2. 在“文档大纲”窗口中,选择**“ToolStripPanel4”**。

  3. 重复单击向下箭头按钮,直到将**“ToolStripPanel4”**置于列表底部。

    **“ToolStripPanel4”**控件被停靠于窗体的底部,位于其他控件的下方。

  4. 选择**“ToolStripPanel2”**。

  5. 单击向下箭头一次,将控件定位在列表中的第三列。

    **“ToolStripPanel2”**控件停靠于窗体的顶部,位于主菜单之下,其他控件之上。

  6. 在**“文档大纲”窗口中选择不同的控件并将它们移动到 Z 顺序中的不同位置。 请注意 Z 顺序对放置停靠控件的影响。 使用 Ctrl-Z 或“编辑”菜单中的“撤消”**来撤消所做的更改。

检查点

测试窗体

  1. 按 F5 编译并运行窗体。

  2. 单击 ToolStrip 控件的手柄并将控件拖动到窗体中的其他位置。

    可以将 ToolStrip 控件从一个 ToolStripPanel 控件拖动到另一个控件。

后续步骤

在本演练中,您已经创建了包含 ToolStrip 控件和菜单合并功能的 MDI 父窗体。 ToolStrip 系列控件有很多其他用途:

请参见

任务

如何:创建 MDI 父窗体

如何:创建 MDI 子窗体

如何:将 MenuStrip 插入 MDI 下拉菜单(Windows 窗体)

参考

MenuStrip

ToolStrip

StatusStrip

其他资源

ToolStrip 控件(Windows 窗体)