ParentForm имеет значение null (в кнопке внутри UserControl внутри формы)! - PullRequest
1 голос
/ 02 февраля 2011

У меня работает этот код!

У меня есть кнопка внутри моего UserControl, отброшенного во время разработки в моей Форме. Все работало хорошо, и когда в событии кнопки я вызывал this.ParentForm, он правильно возвращал мне (только) родительскую форму.

После рефакторинга я переместил пользовательский элемент управления с помощью кнопки в другое пространство имен, и тот же фрагмент кода больше не работает. this.ParentForm теперь имеет значение NULL !

Я прочитал сайт MSDN, и он говорит, что только когда элемент управления размещен в IE или другом контексте this.ParentForm возвращает ноль. Но я переместил только пространство имен!

У кого-нибудь есть идея?

Я не могу использовать другой конструктор для передачи ему родительской формы, поскольку во время разработки Visual Studio не отображала форму.

Ответы [ 2 ]

4 голосов
/ 15 июня 2011

Проверьте, обращаетесь ли вы к родительской форме элемента управления до того, как элемент управления был добавлен в форму.

Ваш код может сработать при инициализации класса пользовательского элемента управления, но элемент управления не был добавлен в родительскую форму.

Попробуйте вставить этот код в событие Control Load.

2 голосов
/ 02 февраля 2011

Посмотрите на файл с выделенным кодом, который содержит сгенерированный дизайнером код.Во время переименования вы могли запутать конструктор Visual Studio, и он мог «осиротеть» экземпляр вашего элемента управления в файле Form.designer.cs.

В частности, посмотрите код в методе InitializeComponentи посмотрите, сможете ли вы найти какой-либо код, который создает экземпляр вашего UserControl, но не добавляет его в контейнер или добавляет его в контейнер, который не добавлен в форму.

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