Нагрузка, OnLoad, Конструктор

Из других вопросов SO, которые я прочитал, кажется, что использование переопределения для onLoad - лучший способ вместо обработки начальных методов в конструкторе.

Когда я помещаю точки останова в свой код, я обнаруживаю, что метод onLoad получает удар, а конструктор - нет ... моя форма, очевидно, открывается нормально, поэтому мне интересно, может ли кто-нибудь пролить свет на в каком порядке это происходит?

То же самое и для пользовательского события загрузки.

РЕДАКТИРОВАТЬ: идиотизм является причиной того, что моя точка останова не была достигнута, но я все еще немного не понимаю, когда вызывается переопределение при загрузке?


person Sayse    schedule 13.12.2012    source источник
comment
Вы можете привести пример кода?   -  person Dimitar Tsonev    schedule 13.12.2012
comment
Он нужен? это не зависит от кода, мне просто интересно, в какой момент вызывается переопределение при загрузке (т.е. когда форма помечена как созданная или аналогичная)   -  person Sayse    schedule 13.12.2012
comment
Возможный дубликат Конструктор форм Winforms против события загрузки   -  person Jim Fell    schedule 07.07.2016
comment
@JimFell - Мне любопытно, есть ли причина, по которой вы пытаетесь закрыть вопросы 4-летней давности как дубликаты этого?   -  person Sayse    schedule 07.07.2016


Ответы (1)


Метод / событие OnLoad выполняется при первом показе формы.

Конструктор всегда вызывается, когда вы используете ключевое слово new для создания нового экземпляра класса вашей формы.

Обычно считается лучшей практикой выполнять инициализацию всех форм в конструкторе, а не во время OnLoad. Если у вас более одного конструктора и вы хотите выполнить некоторые общие задачи инициализации внутри всех из них, поместите их в отдельный метод и вызовите его из своего конструктора. Убедитесь, что InitializeComponent () вызывается как часть вашего конструктора. OnLoad действительно следует использовать только в том случае, если вам нужно изменить положение формы или что-то в этом роде.

person tom.dietrich    schedule 13.12.2012
comment
Хм, в моем случае в моей форме есть несколько вкладок, и одновременная инициализация всех из них не нужна (инициализация формы с помощью вкладок инициализирует все вкладки), хорошо знать, когда именно вызываются эти события, поэтому спасибо! - person Sayse; 13.12.2012