The ToolStripManager.Merge()方法可用于合并 MdiParent 的 ToolStrip 和子 Form 的 Toolstrip。子窗体的 ToolStrip 将是moved到 MdiParent 的 ToolStrip。
The ToolStripManager.RevertMerge()方法将在子窗体关闭时删除子窗体的 ToolStrip。
当然,请使用您分配给 MdiParent ToolStrip 的真实姓名(此处,MdiToolStrip
)和子 Form ToolStrip(此处名为toolStrip1
)并根据您正在使用的内容调整表单名称。
为子 Forms ToolStrip 控件分配不同的名称。
当您创建子 Form 实例时,请在显示它之前添加以下内容:
var child1 = new ChildForm1();
child1.MdiParent = this;
ToolStripManager.Merge(child1.toolStrip1, this.MdiToolStrip);
child1.toolStrip1.Visible = false;
child1.FormClosed += (s, ev) => { ToolStripManager.RevertMerge(this.MdiToolStrip, child1.toolStrip1); };
child1.Show();
如果您的 MdiParent 和子表单中有 MenuStrip,则 ToolStripMenusItems 将自动合并,但我建议您在之后立即添加InitializeComponent()
在 MdiParent 构造函数中:
this.MainMenuStrip = MdiMenuStrip;
where MdiMenuStrip
是分配给 MdiParent 的 MenuStrip 的名称。
原因解释如下:
添加新的 MDI 子窗口时如何避免屏幕弹跳
进一步阅读(MSDN 文档):
如何:为 MDI 应用程序设置自动菜单合并
合并 Windows 窗体 MenuStrip 控件中的菜单项