我有一个MDI表格,我想将子表格的ToolStrip与父Mdi表格合并。
通常情况下,子表格的ToolStrip只显示在所有者的子表格中,但我想把它与MdiParent表格合并。
我可以用MenuStrip来做,但很难找到ToolStrip来做同样的事情。
该 ToolStripManager.Merge() 方法可以用来合并MdiParent的ToolStrip和子表格的Toolstrip。子窗体的ToolStrip将被称为 "ToolStrip"。感动 到MdiParent的ToolStrip。
的工具条。ToolStripManager.RevertMerge() 方法将在子表格关闭时删除子表格的ToolStrip。
当然,使用你为MdiParent ToolStrip分配的真实名称(这里。MdiToolStrip
)和子表格工具条(在这里,命名为 toolStrip1
),并将表单名称调整为您正在使用的名称。
给子窗体ToolStrip控件指定不同的名称。
当您创建一个子窗体实例时,在显示它之前添加这个。
ChildForm1 child1 = new ChildForm1();
child1.MdiParent = this;
ToolStripManager.Merge(child1.toolStrip1, this.MdiToolStrip);
child1.FormClosed += (s, ev) => { ToolStripManager.RevertMerge(this.MdiToolStrip, child1.toolStrip1); };
child1.Show();
如果你在MdiParent和你的子窗体中都有一个MenuStrip,ToolStripMenusItems将被自动合并,但我建议你在显示它之前添加以下内容。InitializeComponent()
中的MdiParent构造函数。
this.MainMenuStrip = MdiMenuStrip;
其中 MdiMenuStrip
是分配给MdiParent的MenuStrip的名称。
原因在这里解释一下。当添加一个新的MDI子窗口时,如何避免屏幕跳动?
进一步的阅读(MSDN文档)。