我可以在MDIParent表格中显示子表格的ToolStrip吗?

问题描述 投票:-1回答:1

我有一个MDI表格,我想将子表格的ToolStrip与父Mdi表格合并。

通常情况下,子表格的ToolStrip只显示在所有者的子表格中,但我想把它与MdiParent表格合并。

我可以用MenuStrip来做,但很难找到ToolStrip来做同样的事情。

c# winforms mdi toolstrip
1个回答
3
投票

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文档)。

如何: 设置MDI应用程序的自动菜单合并。 合并Windows窗体菜单条控件中的菜单项。

© www.soinside.com 2019 - 2024. All rights reserved.