合并 MDI 窗口的菜单条项

发布于 2024-09-15 14:02:29 字数 32 浏览 5 评论 0原文

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

How can I merge menu items of parent form and child form with same menu name?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无声静候 2024-09-22 14:02:30

将菜单项的 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
    到表格2。
  • 注意: 有关 Form2 MenuStrip 上 Visible 属性的信息,请参阅下文,此时可以将其设置为 False。
  • 在“在此处键入”框中输入 &File
  • 在子项“在此处键入”框中输入
    C
  • 您的 MDI 子项(Form2)应该有
    带有项目 C 的“文件”菜单。
  • 单击“文件”菜单项并在
    属性窗口设置MergeAction
    只匹配。
  • 运行程序。

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

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

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

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

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

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

Set the MergeAction of the menu items to "MatchOnly".

Added

Because this can get a little tricky, I'll add a list of steps to make a simple example.

  • Create a new Windows Forms Application.
  • Add a new Windows Form and leave its name Form2.
  • Open Form1 designer (if not already open).
  • Click on the form and set Form1's IsMdiContainer to True.
  • Open the toolbox and add a MenuStrip to Form1.
  • In the "Type Here" box type &File
  • In the sub-item "Type Here" box type A
  • In the sub-item "Type Here" box type B
  • Your MDI container (Form1) should
    have a File menu with items A and B.
  • Double-click the A item to add a
    click handler.
  • Add new Form2 { MdiParent = this }.Show(); to the handler method.
  • Open Form2 designer.
  • Open the toolbox and add a MenuStrip
    to Form2.
  • Note: See below for information about the Visible property on the Form2 MenuStrip, which could be set to False at this point.
  • In the "Type Here" box type &File
  • In the sub-item "Type Here" box type
    C
  • Your MDI child (Form2) should have a
    File menu with item C.
  • Click on the File menu item and in
    the Properties window set MergeAction
    to MatchOnly.
  • Run the program.

Notice that the File menu items are A and B.

Click File -> A to create a child window.

Notice that the File menu on the container now contains A, B, and C.

Notice also that the File menu on the child is there, but has no items. This is because C was merged.

You can now set the child's MenuStrip.Visible property to False so that the child does not display a menu. It is handy to leave this as True when designing your menus so that you can verify that all the child menu items have been merged correctly (they will be gone from the child menu).

You can use the MergeIndex property to control how child items get merged into the container.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文