5

如何合并具有相同菜单名称的父窗体和子窗体的菜单项?

4

1 回答 1

13

将菜单项的 MergeAction 设置为“MatchOnly”。

添加

因为这可能有点棘手,所以我将添加一个步骤列表来制作一个简单的示例。

  • 创建一个新的 Windows 窗体应用程序。
  • 添加一个新的 Windows 窗体并保留其名称 Form2。
  • 打开 Form1 设计器(如果尚未打开)。
  • 单击窗体并将 Form1 的 IsMdiContainer 设置为 True。
  • 打开工具箱并将 MenuStrip 添加到 Form1。
  • 在“在此处键入”框中键入 &File
  • 在子项“在此处输入”框中输入 A
  • 在子项“在此处输入”框中输入 B
  • 您的 MDI 容器 (Form1) 应该有一个包含项目 A 和 B 的文件菜单。
  • 双击 A 项以添加单击处理程序。
  • 添加new Form2 { MdiParent = this }.Show();到处理程序方法。
  • 打开 Form2 设计器。
  • 打开工具箱并将 MenuStrip 添加到 Form2。
  • 注意:有关 Form2 MenuStrip 上的 Visible 属性的信息,请参见下文,此时可以将其设置为 False。
  • 在“在此处键入”框中键入 &File
  • 在子项“在此处输入”框中输入 C
  • 您的 MDI 子 (Form2) 应该有一个带有 C 项的文件菜单。
  • 单击文件菜单项并在属性窗口中将 MergeAction 设置为 MatchOnly。
  • 运行程序。

请注意,文件菜单项是 A 和 B。

单击文件 -> A 以创建子窗口。

请注意,容器上的文件菜单现在包含 A、B 和 C。

另请注意,子项上的文件菜单在那里,但没有项目。这是因为 C 被合并了。

您现在可以将孩子的 MenuStrip.Visible 属性设置为 False,这样孩子就不会显示菜单。在设计菜单时将其保留为 True 很方便,这样您就可以验证所有子菜单项是否已正确合并(它们将从子菜单中消失)。

您可以使用 MergeIndex 属性来控制子项如何合并到容器中。

于 2010-08-18T14:25:48.790 回答