Глядя в отражатель, похоже, что Parent
просто вызывает Add
(когда новый родительский элемент не нулевой). Controls.Add
имеет дело с изъятием его у старого родителя. Таким образом, на самом деле, следующие функционально эквивалентны (когда ownerControl
не является нулевым):
ownerControl.Controls.Add(childControl); // note no Remove etc
и
childControl.Parent = ownerControl;
Не интуитивно, но быстрый тест показывает, что он работает.