Разница между настройкой родительского свойства control и использованием Controls.Add ()? - PullRequest
4 голосов
/ 07 июня 2009

более конкретно, являются ли эти заявления

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

эквивалент

childControl.Parent = ownerControl;

1 Ответ

9 голосов
/ 07 июня 2009

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

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

и

childControl.Parent = ownerControl;

Не интуитивно, но быстрый тест показывает, что он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...