更具体地说,这些声明
ownerControl.GroupBox1.Controls.Remove(childControl);
ownerControl.Controls.Add(childControl);
相当于
childControl.Parent = ownerControl;
最佳答案
在reflector中,看起来Parent
只调用Add
(当新父级为非空时)。Controls.Add
处理从老父母那里夺走它的问题。所以实际上,下面的函数是等价的(当ownerControl
不为空时):
ownerControl.Controls.Add(childControl); // note no Remove etc
以及:
childControl.Parent = ownerControl;
与直觉相反,但一个快速测试表明它是有效的。
关于c# - 设置控件父属性和使用Controls.Add()之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/961554/