Kolejność zdarzeń".Load', ' Form.Pokazana forma" i".Aktywowane " w Windows Forms

Jaka jest różnica między formularzem formularzem.Załaduj, Forma.Pokazano i formularz.Aktywowane zdarzenia? W jakiej kolejności są zwalniane?

Author: Peter Mortensen, 2010-06-18

5 answers

Zobacz cykl życia zdarzeń Windows Forms :

  • Move: to zdarzenie występuje podczas przenoszenia formularza. Chociaż domyślnie, gdy formularz jest tworzony i uruchamiany, użytkownik nie przenosi go, to jednak zdarzenie to jest wyzwalane przed wystąpieniem zdarzenia Load.
  • Load: to zdarzenie występuje przed pierwszym wyświetlaniem formularza.
  • VisibleChanged: to zdarzenie występuje, gdy widoczna wartość właściwości ulegnie zmianie.
  • Activated: zdarzenie to występuje, gdy formularz jest aktywowane kodem lub przez użytkownika.
  • pokazane: to zdarzenie występuje zawsze, gdy formularz jest wyświetlany po raz pierwszy.
  • Paint: to zdarzenie występuje po przerysowaniu kontrolki.
  • Deaktywacja: to zdarzenie występuje, gdy forma traci ostrość i nie jest aktywną formą.
  • Zamknięcie: to zdarzenie występuje, gdy formularz jest zamykany.
  • Closed: to zdarzenie występuje, gdy formularz jest zamykany.
 72
Author: Galwegian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-18 13:56:40
  • Zdarzenie Load zostanie wywołane, gdy formularz został zainicjowany, po wytworzeniu jego obsługi, ale zanim zostanie pokazany.

  • Zdarzenie Shown zostanie wywołane po pierwszym wywołaniu formularza, gdy zostanie wywołany form.Show() (lub form.Visible = true).
    Jeśli ukryjesz SWÓJ formularz, a następnie pokaż go ponownie, Shown uruchomi się ponownie. (But Load won't)

  • Zdarzenie Activate zostanie wywołane, gdy użytkownik przełączy się do formularza.
    Jeżeli użytkownik przełączy się na inny program (lub formę), wtedy przełącza się z powrotem do formularza, {[6] } będzie strzelać ponownie.

 23
Author: SLaks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-08 22:17:18

Ponadto Zdarzenie Form.Activate może być wywołane wielokrotnie. Na przykład, jeśli otworzysz okno wiadomości z formularza, a po kliknięciu przycisku messagebox ' s any i powrócisz do formularza, zostanie wywołane Form.Activate. To samo dotyczy każdego innego okna dialogowego, takiego jak FileOpenDialog.

 14
Author: matrix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 06:44:40

Klasy Form i Control ujawniają zestaw zdarzeń związanych z uruchamianiem i zamykaniem aplikacji. Po uruchomieniu aplikacji Windows Forms zdarzenia startowe głównego formularza są wywoływane w następującej kolejności:

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

Gdy aplikacja się zamyka, zdarzenia zamykania głównego formularza są wywoływane w następującej kolejności:

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

Focus and Validation Events

Po zmianie ostrości za pomocą klawiatury (TAB, SHIFT+TAB itd.), wywołując Select lub Metody SelectNextControl lub ustawiając właściwość ActiveControl na bieżącą formę, zdarzenia focus klasy Control występują w następującej kolejności:

Enter
GotFocus
Leave
Validating
Validated
LostFocus

Gdy zmienisz ostrość za pomocą myszy lub wywołując metodę Focus, zdarzenia focus klasy Control występują w następującej kolejności:

Enter
GotFocus
LostFocus
Leave
Validating
Validated
 8
Author: Taja_100,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-07 13:00:09

Kolejność to Form.Load, która inicjalizuje formularz i wywołuje kontrolki, Form.Shown, która oznacza ramkę jako widoczną (nawet w C++, robi się to po utworzeniu formularza) i Form.Activated, która nadaje fokus forum.

 3
Author: Stefan Valianu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-09 12:58:19