合并MDI窗口的菜单条项

时间:2010-08-18 10:35:53

标签: c# menuitem mdichild mdiparent

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

1 个答案:

答案 0 :(得分:12)

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

<强>加

因为这会有点棘手,我会添加一个步骤列表来做一个简单的例子。

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

请注意,“文件”菜单项为A和B.

点击文件 - &gt; A创建子窗口。

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

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

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

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