【发布时间】:2018-04-11 20:18:59
【问题描述】:
我创建了一个模板面板,以便在加载包含记录的表单时通过。添加新记录时,我有一种方法可以复制该模板面板,然后将其添加到每条记录的面板列表中。当我复制它时,不知何故,我的模板面板中的控件被删除了,我不知道这是怎么发生的。下面列出了执行此操作的代码部分
Panel pn = new Panel()
{
Width = _PNTemp.Width,
Height = _PNTemp.Height,
Left = 0,
Top = 0,
BackColor = _PNTemp.BackColor,
ForeColor = _PNTemp.ForeColor,
AutoScroll = true,
Name = _PNTemp.Name,
Tag = _PrgPanels.Count.ToString()
};
MessageBox.Show(_PNTemp.Controls.Count.ToString());
foreach (Control c in _PNTemp.Controls)
{
pn.Controls.Add(c);
MessageBox.Show(_PNTemp.Controls.Count.ToString());
}
MessageBox.Show(_PNTemp.Controls.Count.ToString());
_PrgPanels.Add(pn);
我将 messagebox.show() 放在 3 点处以缩小它发生的位置。第一个显示正确的控件数量,第二个和第三个显示控件总数的 1/2。这是为什么?
【问题讨论】:
-
您不是在“复制”控件。你在移动它们。当我将一罐啤酒从冰箱里复制到肚子里时,为什么它会从冰箱里消失?在案件接近尾声之前,这不应该令人困惑。