О событии загрузки Windows Forms UserControl - PullRequest
1 голос
/ 03 сентября 2010

Есть ли гарантия, что событие Load, если UserControl всегда происходит после метода InitializeComponent() и конструктора были завершены?

1 Ответ

2 голосов
/ 03 сентября 2010

Нет. Событие Load запускается сразу после создания дескриптора. Конструктор может использовать свойство элемента управления, которое требует создания физического окна. Это автоматически вызывает метод CreateHandle (), Load is next.

Это редко и обычно ошибка. Это имеет тенденцию заканчиваться, в зависимости от того, что делается в обработчике событий. Который должен делать только те вещи, которые требуют окна. Это не часто, все остальное принадлежит конструктору. Однако конструктор еще не завершен, поэтому вы работаете с частично инициализированным объектом. Несчастные случаи возможны.

...