Порядок событий «Form.Load», «Form.Shown» и «Form.Activated» в Windows Forms
В чем разница между формой Form.Load , Form.Shown и Form.Activated событиями? Каков порядок их увольнения?
- Jquery добавляет прослушиватели событий к динамически добавленным элементам
- Понимание событий и обработчиков событий в C #
- Как удалить все обработчики событий из события
- простое пользовательское событие
- Пользовательский прослушиватель событий в приложении для Android
- Использование IDisposable для отмены подписки
- Событие Internet Explorer и JavaScript currentTarget
- Неактивность и активность WPF
См. Жизненный цикл событий Windows Forms :
- Move: Это событие происходит, когда форма перемещается. Хотя по умолчанию, когда создается и запускается форма, пользователь не перемещает ее, но это событие запускается до появления события загрузки.
- Загрузка: Это событие происходит до того, как форма отображается в первый раз.
- VisibleChanged: Это событие возникает, когда изменяется значение свойства Visible.
- Активировано: это событие происходит, когда форма активируется кодом или пользователем.
- Отображается: Это событие возникает, когда форма сначала отображается.
- Paint: Это событие происходит, когда элемент управления перерисовывается.
- Деактивировать: Это событие происходит, когда форма теряет фокус и не является активной формой.
- Закрытие: это событие происходит, когда форма закрывается.
- Закрыто: это событие происходит, когда форма закрывается.
-
Событие
Load
запускается, когда форма была инициализирована, после того, как ее дескриптор был создан, но до его отображения. -
Событие
form.Show()
после первого появления формы, когда вы вызываетеform.Show()
(илиform.Visible = true
).
Если вы скроете свою форму, а затем снова покажите ее,Shown
снова запустится. (НоLoad
не будет) -
Событие
Activate
срабатывает, когда пользователь переключается на вашу форму.
Если пользователь переключается на другую программу (или форму), затем переключается обратно в вашу форму,Activate
снова загорается.
Кроме того, событие Form.Activate
может быть Form.Activate
несколько раз. Например, если вы откроете окно сообщения из своей формы, и когда вы нажмете на любую кнопку сообщения, и вернитесь к форме, будет Form.Activate
. То же самое верно для любого другого диалогового windows, такого как FileOpenDialog
.
Классы формы и управления выставляют набор событий, связанных с запуском и завершением работы приложения. Когда приложение 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 в текущую форму, события фокуса classа Control встречаются в следующих заказ:
Enter GotFocus Leave Validating Validated LostFocus
Когда вы меняете фокус с помощью мыши или вызывая метод Фокус, события фокусировки classа Control выполняются в следующем порядке:
Enter GotFocus LostFocus Leave Validating Validated
Приказ будет Form.Load
, который инициализирует форму и вызывает элементы управления Form.Shown
, которая отмечает видимость кадра (даже в C ++ , это делается после создания формы) и Form.Activated
, что дает фокус форума.