如何在C#的多面板中添加相同的控件?

时间:2010-02-24 10:59:44

标签: c# controls panel

我有一个名为button1的按钮和两个面板:panelA和panelB(默认情况下可见为false)和以下代码(WinForms):

panelA.Controls.Add(button1);
panelB.Controls.Add(button1);
panelB.Visible = true; // I see the button1
panelA.Visible = true; // I don't (ofcoz panelB.Visible is still false)
MessageBox.Show(panelA.Controls.Contains(button1).ToString); //False, why?

我不知道为什么?也许这对你来说是一个愚蠢的问题,但我是新手,所以我对这个问题真的不知道吗?你能帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:5)

对象button1只能有一个可视父级。因此,您不应将其添加到2个不同的父母。

所以,你需要有2个按钮对象。

答案 1 :(得分:1)

我不知道为什么你的第二个按钮不可见。但是,为什么不使用具有相同点击事件的两个不同按钮?

如果问题仍然存在,您是否尝试添加两个不同的按钮实例?

祝你好运。

答案 2 :(得分:0)

只能显示一个对象实例,因此您必须为您的按钮创建另一个实例。它们都是相同的(因为它们是一个控制 - 但是为了拥有不同的实例,它们会有不同的行为)。

这是因为你只能拥有一个控件实例。你真的不需要同一个对象的实例。