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

我有一个名为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? 

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

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

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

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

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

祝好运。

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

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