Подтвердить что ты не робот

Порядок событий "Form.Load", "Form.Shown" и "Form.Activated" в Windows Forms

В чем разница между формой Form.Load, Form.Shown и Form.Activated события? Каков порядок их увольнения?

4b9b3361

Ответ 1

Смотрите Жизненный цикл событий Windows Forms:

  • Переместить: это событие происходит, когда форма перемещается. Хотя по умолчанию, когда создается и запускается форма, пользователь не перемещает ее, но это событие запускается до возникновения события загрузки.
  • Загрузка: это событие происходит до того, как форма отображается в первый раз.
  • VisibleChanged: Это событие происходит, когда изменяется значение свойства Visible.
  • Активировано: это событие происходит, когда форма активируется в коде или пользователем.
  • Отображается: Это событие происходит всякий раз, когда форма сначала отображается.
  • Краска: это событие происходит, когда элемент управления перерисовывается.
  • Деактивировать: Это событие происходит, когда форма теряет фокус и не является активной формой.
  • Закрытие: это событие происходит, когда форма закрывается.
  • Закрыто: это событие происходит, когда форма закрывается.

Ответ 2

  • Событие Load запускается, когда форма была инициализирована после создания дескриптора, но до его отображения.

  • Событие Shown срабатывает после первого появления формы, когда вы вызываете form.Show() (или form.Visible = true).
    Если вы скроете свою форму, затем снова покажите ее, Shown снова запустится. (Но Load не будет)

  • Событие Activate срабатывает, когда пользователь переключается на вашу форму.
    Если пользователь переключится на другую программу (или форму), затем переключится на вашу форму, Activate снова запустится.

Ответ 3

Кроме того, событие Form.Activate может быть запущено несколько раз. Например, если вы откроете окно сообщения из своей формы, и когда вы нажмете на кнопку сообщения любую кнопку и вернитесь к форме, Form.Activate будет запущен. То же самое верно для любого другого диалогового окна, такого как FileOpenDialog.

Ответ 4

В классах Form и Control выставляется набор событий, связанных с запуском и завершением работы приложения. Когда приложение Windows Forms запускается, события запуска основной формы поднимаются в следующем порядке:

Control.HandleCreated
Control.BindingContextChanged
Form.Load
Control.VisibleChanged
Form.Activated
Form.Shown

Когда приложение закрывается, события выключения основной формы поднимаются в следующем порядке:

Form.Closing
Form.FormClosing
Form.Closed
Form.FormClosed
Form.Deactivate

События фокуса и подтверждения

Когда вы меняете фокус с помощью клавиатуры (TAB, SHIFT + TAB и т.д.), вызывая методы Select или SelectNextControl или устанавливая свойство ActiveControl в текущую форму, происходят события фокусировки класса Control в следующем порядке:

Enter
GotFocus
Leave
Validating
Validated
LostFocus

Когда вы меняете фокус с помощью мыши или вызываете метод Фокус, события фокуса класса Control выполняются в следующем порядке:

Enter
GotFocus
LostFocus
Leave
Validating
Validated

Ответ 5

Порядок будет Form.Load, который инициализирует форму и вызывает элементы управления, Form.Shown, который отмечает кадр как видимый (даже в C++, это делается после создания формы) и Form.Activated, что дает фокус форума.