Ordine di eventi ‘Form. Caricamento’, ‘Form. Riproduzione’ e ‘Form. Attivato’ in Windows Form

Qual è la differenza tra i moduli Form.Load , Form.Shown e Form.Activated events? Qual è l’ordine in cui vengono licenziati?

Guarda il ciclo di vita degli eventi di Windows Form :

  • Sposta: questo evento si verifica quando il modulo viene spostato. Sebbene per impostazione predefinita, quando un modulo viene istanziato e avviato, l’utente non lo sposta, tuttavia questo evento viene triggersto prima che si verifichi l’evento Load.
  • Carica: questo evento si verifica prima che un modulo venga visualizzato per la prima volta.
  • VisibleChanged: questo evento si verifica quando cambia il valore della proprietà Visible.
  • Attivato: questo evento si verifica quando il modulo viene triggersto nel codice o dall’utente.
  • Indicato: questo evento si verifica ogni volta che il modulo viene visualizzato per la prima volta.
  • Paint: questo evento si verifica quando il controllo viene ridisegnato.
  • Distriggers: questo evento si verifica quando il modulo perde lo stato attivo e non è la forma triggers.
  • Chiusura: questo evento si verifica quando il modulo si sta chiudendo.
  • Chiuso: questo evento si verifica quando il modulo viene chiuso.
  • L’evento Load si triggers quando il modulo è stato inizializzato, dopo che il suo handle è stato creato ma prima che venga mostrato.

  • L’evento Shown si form.Show() dopo la prima volta che il modulo diventa visibile, quando chiami form.Show() (o form.Visible = true ).
    Se nascondi il modulo, quindi mostralo di nuovo, verrà Shown nuovo. (Ma Load non lo farà)

  • L’evento Activate si Activate quando l’utente passa al modulo.
    Se l’utente passa a un altro programma (o modulo), quindi torna al modulo, Activate verrà Activate nuovamente.

Inoltre, l’evento Form.Activate può essere triggersto più volte. Ad esempio, se si apre una finestra di messaggio dal modulo e quando si fa clic sul pulsante qualsiasi della finestra di messaggio e si ritorna al modulo, viene Form.Activate . Lo stesso vale per qualsiasi altra finestra di dialogo come FileOpenDialog .

Le classi Form e Control espongono una serie di eventi correlati all’avvio e all’arresto dell’applicazione. Quando si avvia un’applicazione Windows Form, gli eventi di avvio del modulo principale vengono generati nel seguente ordine:

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

Quando un’applicazione si chiude, gli eventi di chiusura del modulo principale vengono generati nel seguente ordine:

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

Focus e eventi di convalida

Quando si modifica lo stato attivo utilizzando la tastiera (TAB, MAIUSC + TAB e così via), chiamando i metodi Select o SelectNextControl o impostando la proprietà ActiveControl sul modulo corrente, gli eventi di triggerszione della class Control si verificano nel seguente ordine:

 Enter GotFocus Leave Validating Validated LostFocus 

Quando modifichi lo stato attivo usando il mouse o chiamando il metodo Focus, gli eventi di messa a fuoco della class Control si verificano nel seguente ordine:

 Enter GotFocus LostFocus Leave Validating Validated 

L’ordine sarebbe Form.Load , che inizializza il modulo e chiama i controlli, Form.Shown , che contrassegna la cornice come visibile (anche in C ++ , questa operazione viene eseguita dopo la creazione del modulo) e Form.Activated , che restituisce focus sul forum.