Событие Form.Shown - хорошее место для любой инициализации, которая может занять более одной секунды. Form.Shown происходит только один раз, всего через после форма впервые становится видимой для пользователя.
Очевидно, что если у вас длительная инициализация, вам все равно нужно предоставить какую-то визуальную обратную связь и, возможно, отключить разделы формы до завершения. Но если инициализация неизбежна, Form.Shown, по крайней мере, позволяет вам сообщить пользователю, что приложение не зависло, и дать отзыв о том, что оно на самом деле делает.
По сравнению с Form.Load: с точки зрения пользователей ваше приложение будет запускаться быстрее, поскольку ваша форма уже видна во время инициализации.
По сравнению с Form.Activation: вам не нужно беспокоиться о том, что инициализация выполняется несколько раз, поскольку событие Activated вызывается каждый раз, когда ваша форма скрыта / показана, свернута / развернута и т. Д.
По сравнению с конструктором: похоже на Form.Load, ваша форма не будет видна до завершения инициализации. Кроме того, вы должны быть более внимательны к вопросам синхронизации / последовательности, связанным с элементами управления, которые могут быть не полностью инициализированы.