如果你有多文档界面(MDI)应用程序,则可以将子窗体中的菜单项或整个菜单合并到父窗体的菜单中。
本主题介绍与 MDI 应用程序中合并菜单项相关的基本概念。
合并过程涉及目标和源控制:
MdiWindowListItem 属性标识你将使用当前 MDI 父窗体的 MDI 子项的标题填充其下拉列表的菜单项。 例如,你通常会列出当前在“窗口”菜单上打开的 MDI 子级。
IsMdiWindowListEntry 属性标识哪些菜单项来自 MDI 子窗体上的 MenuStrip。
可以手动或自动合并菜单项。 两种方法的菜单项以相同的方式合并,但其启动方式不同,详见本主题后面的“手动合并”和“自动合并”部分。 在手动和自动合并中,每个合并操作都会影响下一个合并操作。
MenuStrip 合并将菜单项从一个 ToolStrip 移动到另一个,而不是克隆它们,就像 MainMenu 的情况一样。
使用 MergeAction 属性在源 MenuStrip 中的菜单项上设置合并操作。
下表描述了可用合并操作的含义和典型用法。
只有 MenuStrip 控件参与自动合并。 若要合并其他控件(如 ToolStrip 和 StatusStrip 控件)的项,必须根据需要在代码中调用 Merge 和 RevertMerge 方法来手动合并它们。
可以通过激活源表单在 MDI 应用程序中使用自动合并。 若要在 MDI 应用程序中使用 MenuStrip,请将 MainMenuStrip 属性设置为目标 MenuStrip,以便合并对源 MenuStrip 执行的操作反映在目标 MenuStrip中。
可以通过激活 MDI 源上的 MenuStrip 来触发自动合并。 激活后,源 MenuStrip 将合并到 MDI 目标中。 当新窗体变为活动状态时,合并将在最后一个窗体上还原,并在新窗体上触发。 可以通过在每个 ToolStripItem上根据需要设置 MergeAction 属性,并在每个 MenuStrip上设置 AllowMerge 属性来控制此行为。