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

更新:2007 年 11 月

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

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

  • 创建 Windows 窗体项目。

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

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

  • 创建子窗体。

  • 按 Z 顺序排列 ToolStripPanel 控件。

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

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

说明:

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

先决条件

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

  • 足以在安装了 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 窗体)