Когда форма загружается, код должен делать такие вещи, как настройка таблиц данных, поля со списком, установка заголовка и т. д. Я всегда использовал событие загрузки, а не новый (конструктор). Есть ли какие-либо рекомендации, которые лучше всего подходят для каких видов деятельности?





По сути, вы хотите, чтобы ваш конструктор был как можно более легким. Я стараюсь поместить большинство вещей в обработчик событий Load, поскольку элементы пользовательского интерфейса созданы и могут использоваться в настоящее время. Однако я обычно создаю экземпляры объектов класса и т. д. В конструкторе, поскольку он фактически является частью построения объекта. Иногда вы не можете поместить вещи в одно или другое место, но в тех случаях, когда вы можете, вы должны просто положить их там, где это кажется наиболее подходящим.
Вызов InitializeComponent автоматически вставляется в конструктор вашей формы / страницы. InitializeComponent - это автоматически сгенерированный метод, который
Таким образом, все, что связано с расположением / модификацией пользовательского интерфейса, должно идти в после этого вызова. Когда вы делаете это в переопределении Form.OnLoad, вы уверены, что пользовательский интерфейс готов к работе (был вызван InitializeComponent) ... поэтому я бы проголосовал за то, чтобы придерживаться OnLoad для UI.
Создавая элементы, не относящиеся к пользовательскому интерфейсу, я бы сначала посмотрел на конструктор.
Имейте в виду, что все, что есть в конструкторе формы, будет создано / выполнено при создании этой формы. я ем:
Форма frm = new Form ();
В то время как что-либо в событии Load произойдет только тогда, когда форма будет показано, т.е. frm.Show ();
Обратите внимание, что есть также событие «Показано». Событие загрузки происходит до отображения формы, но когда окно существует и макет готов.