Вызов InitializeComponent автоматически вставляется в конструктор вашей формы / страницы. InitializeComponent - это автоматически сгенерированный метод, который
- создает различные элементы интерфейса на вашей странице winform / XAML
- инициализирует их свойства значениями, хранящимися в файле ресурсов
Таким образом, все, что связано с расположением / модификациями пользовательского интерфейса, должно идти после этого вызова. Когда вы делаете это в переопределении Form.OnLoad, вы уверены, что пользовательский интерфейс готов к работе (был вызван InitializeComponent) ... поэтому я бы проголосовал за то, чтобы придерживаться OnLoad для пользовательского интерфейса.
Создавая элементы, не относящиеся к пользовательскому интерфейсу, конструктор был бы местом, на которое я бы сначала посмотрел.