更具体地说,是这些陈述
ownerControl.GroupBox1.Controls.Remove(childControl);
ownerControl.Controls.Add(childControl);
相当于
childControl.Parent = ownerControl;
答案 0 :(得分:9)
查看反射器,看起来Parent
只调用Add
(当新父项为非空时)。 Controls.Add
处理将其从旧父母手中夺走的问题。实际上,以下是功能相同的(当ownerControl
不为空时):
ownerControl.Controls.Add(childControl); // note no Remove etc
和
childControl.Parent = ownerControl;
反直觉,但快速测试表明它有效。