如何将子表单类中的menustrip中的其他项合并到其基类中的menustrip中的原始项? (的Winforms)

时间:2011-03-23 04:42:39

标签: c# winforms

我正在制作一个另一种形式的子类形式,即“基本形式”

在基本表单中,我有一个菜单条。它会有一些项目。

但是,在子窗体中,我想要一个菜单​​条,除了它必须包含基本菜单条包含的所有项目。我在某地读到你可以合并menustrips ......但我也希望得到设计师的支持!

也就是说,如果我在设计器中打开子表单,它将显示所有基本表单项以及新的子表单项。最好,我希望锁定基本表单项。

这可能吗?如果没有,我想我可以在子表单中的InitializeComponent之后合并基本menustrip。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以合并两个菜单:

ToolStripManager.Merge(source, target)

例如,在form2.load中,您可以使用它将form2的菜单与form1的菜单结合起来:

ToolStripManager.Merge(Form1.MenuStrip1, MenuStrip1)

答案 1 :(得分:0)

OP说“我也希望得到设计师支持”,尽管你仍然需要使用@xpda提出的Merge()调用,但这是可能的。您可以将子项的项添加到子类设计器中的MenuStrip,并以正常方式对其进行编辑。在设计器中,此条带显示在基类的菜单条下方。

执行表单时,Merge(source,target)调用将从源(子)MenuStrip中删除项目,并将它们复制到目标(基础)MenuStrip。 但是子菜单条(现在为空白)仍显示在主菜单下方。您必须将其Visible属性设置为false,您可以在设计器中或在Merge()调用后以编程方式执行此操作。