我正在复制带有子面板的面板,如下图所示:
我使用以下代码构造一个新的Form,并尝试在该表单中填充面板。
public Form3(Panel p)
{
InitializeComponent();
foreach(Panel child in p.Controls){
panel1.Controls.Add(child);
}
}
但是最终发生的事情是随着孩子的添加,原始面板开始被删除并失去控制。
最后,它跳过所有其他控件,如下图所示。
左侧是原始面板,右侧是新表单中的面板。
我应该怎么做呢?我希望原始面板和新面板具有完全相同的控件。实际上,我什至不知道为什么要从原始面板中删除它。
PS在构造函数中,我已经确保要查看的原始面板是否具有正确的值,并且它们是否正确。
当您向父级添加控件时,它将自动将其从其父级中删除。然后只有它会添加到新的父级。
Control
提供财产Parent
。如果在两个面板中添加控件,您期望control.Parent
返回的结果是什么?第一父母还是第二父母?
你需要这样的东西
foreach(Panel child in p.Controls)
{
panel1.Controls.Add(new Panel{ BackColor = child.BackColor });
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句