更具体地说,这些声明

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/

10-09 08:13