Domanda Ordine di eventi 'Form. Caricamento', 'Form. Riproduzione' e 'Form. Attivato' in Windows Form


Qual è la differenza tra la forma Form.Load, Form.Shown e Form.Activated eventi? Qual è l'ordine in cui vengono licenziati?


44
2018-06-18 13:53


origine


risposte:


Vedere 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 attivato 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 attivato 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.
  • Disattiva: questo evento si verifica quando il modulo perde lo stato attivo e non è la forma attiva.
  • Chiusura: questo evento si verifica quando il modulo si sta chiudendo.
  • Chiuso: questo evento si verifica quando il modulo viene chiuso.

63
2018-06-18 13:56



  • Il Load l'evento si attiva quando il modulo è stato inizializzato, dopo che l'handle è stato creato ma prima che venga visualizzato.

  • Il Shown l'evento si attiva dopo la prima volta che il modulo diventa visibile, quando si chiama form.Show() (o form.Visible = true).
    Se nascondi il modulo, mostralo di nuovo, Shown sparerà di nuovo. (Ma Load non lo farà)

  • Il Activate l'evento si attiva quando l'utente passa al modulo.
    Se l'utente passa a un altro programma (o modulo), quindi torna al modulo, Activate sparerà di nuovo.


21
2018-06-18 13:57



Inoltre, Form.Activate l'evento può essere licenziato più volte. Ad esempio, se apri una finestra di messaggio dal tuo modulo e quando fai clic sul pulsante qualsiasi della finestra di messaggio, e torni di nuovo al modulo, Form.Activate è licenziato. Lo stesso vale per qualsiasi altra finestra di dialogo come FileOpenDialog.


13
2018-06-30 03:07



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 attivazione della classe 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 classe Control si verificano nel seguente ordine:

Enter
GotFocus
LostFocus
Leave
Validating
Validated

6
2018-04-07 13:00



L'ordine sarebbe Form.Load, che inizializza il modulo e chiama i controlli, Form.Shown, che segna la cornice come visibile (anche in C ++, questo viene fatto dopo che il modulo è stato creato), e Form.Activated, che dà l'attenzione al forum.


3
2018-06-18 13:54