В чем разница между Control.FindForm и ContainerControl.ParentForm - PullRequest
7 голосов
/ 22 июля 2011

Мне интересно, есть ли функциональная (или иная) разница между Control.FindForm и ContainerControl.ParentForm?Я использовал .ParentForm при создании собственных пользовательских элементов управления, но будет ли какая-либо причина, по которой .FindForm будет лучшим выбором?Из того, что я могу сказать, они всегда будут возвращать одну и ту же форму (т. Е. Форму, в которой находится пользовательский элемент управления, или ноль)..ParentForm просто звонит .FindForm или есть время, когда они могут отличаться (возможно, с помощью mdi windows)?

1 Ответ

11 голосов
/ 22 июля 2011

Они немного отличаются.ParentForm вернет значение null, когда вы вызовете его в форме верхнего уровня, поскольку у него нет родителя.FindForm () не будет, он сам себя возвращает.И ParentForm предъявляет требования безопасности, а FindForm () - нет.В противном случае они используют одну и ту же внутреннюю реализацию.Сам Winforms вообще не использует ParentForm, я бы проигнорировал его.

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