设置控制父属性和使用Controls.Add()之间的区别?

更具体地说,是这些陈述

ownerControl.GroupBox1.Controls.Remove(childControl); ownerControl.Controls.Add(childControl); 

相当于

 childControl.Parent = ownerControl; 

看看reflection器,它看起来像Parent只调用Add (当新的父元素为非null时)。 Controls.Add处理从旧父母那里取走它。 实际上,以下是function相同的(当ownerControl不为null时):

 ownerControl.Controls.Add(childControl); // note no Remove etc 

和:

 childControl.Parent = ownerControl; 

反直觉,但快速测试表明它有效。