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

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

См. Жизненный цикл событий 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 , что дает фокус форума.

  • Как я могу получить WPF EventTrigger в триггере View, если он требует диктует базовую модель Viewmodel?
  • Получить отредактированный TreeNode от CellEditorListener
  • Реализация сканера штрих-кода на Java
  • Как передать событие onClick для своего родителя на Android?
  • Событие Click не работает с динамически сгенерированными элементами
  • iOS - нажимать вперед все
  • Как удалить обработчик события lambda
  • Подпись к событию в .NET. Использование сильного напечатанного «Отправителя»?
  • Как события вызывают утечку памяти на C # и как облегчить работу слабых ссылок?
  • Как добавить события в элементы управления, созданные во время выполнения в Excel с помощью VBA
  • Пользовательские события в jQuery?
  • Interesting Posts

    Привязка определенной папки к панели задач в Windows 7

    Увеличение размера виртуального диска

    Двухцветный фон, разделенный диагональной линией, используя css

    Ошибка блокировки загрузчика

    Android: Как создавать звуковые эффекты fade-in / fade-out для любого музыкального файла, который играет мое приложение?

    Control + Tab больше не работает (Control + Shift + Tab все еще работает)

    Как я могу использовать клавиатуру для переключения мыши между левыми и правыми?

    java InetAddress.getLocalHost (); возвращает 127.0.0.1 … как получить REAL IP?

    Драйверы AMD Graphics не будут установлены должным образом

    Ограничьте каждого пользователя только своей собственной домашней папкой

    Все программы, запущенные на компьютере, отображаются на вкладке процессов в диспетчере задач?

    Powershell эквивалентен команде unix `which`?

    Как работает ключевое слово «final» в Java? (Я все еще могу изменить объект.)

    Как выполнить макрос Outlook 2010 с помощью AutoHotKey?

    Узнайте, что работает JVM Eclipse

    Давайте будем гением компьютера.