Quelle est la différence entre les événements de formulaire Form.Load , Form.Shown et Form.Activated ? Quel est l'ordre dans lequel ils sont tirés?
Voir le Cycle de vie des événements Windows Forms :
L'événement Load
se déclenche lorsque le formulaire a été initialisé, après la création de son handle mais avant son affichage.
L'événement Shown
se déclenche après la première fois que le formulaire devient visible, lorsque vous appelez form.Show()
(ou form.Visible = true
).
Si vous masquez votre formulaire, puis affichez-le à nouveau, Shown
se déclenchera à nouveau. (Mais Load
ne le fera pas)
L'événement Activate
se déclenche lorsque l'utilisateur bascule vers votre formulaire.
Si l'utilisateur passe à un autre programme (ou formulaire), puis revient à votre formulaire, Activate
se déclenchera à nouveau.
De plus, Form.Activate
L'événement peut être déclenché plusieurs fois. Par exemple, si vous ouvrez une boîte de message à partir de votre formulaire et lorsque vous cliquez sur n'importe quel bouton de la boîte de message et revenez au formulaire, Form.Activate
est renvoyé. Il en va de même pour toute autre boîte de dialogue telle que FileOpenDialog
.
Les classes Form et Control exposent un ensemble d'événements liés au démarrage et à l'arrêt de l'application. Lorsqu'une application Windows Forms démarre, les événements de démarrage du formulaire principal sont déclenchés dans l'ordre suivant:
Control.HandleCreated
Control.BindingContextChanged
Form.Load
Control.VisibleChanged
Form.Activated
Form.Shown
Lorsqu'une application se ferme, les événements d'arrêt du formulaire principal sont déclenchés dans l'ordre suivant:
Form.Closing
Form.FormClosing
Form.Closed
Form.FormClosed
Form.Deactivate
Événements de concentration et de validation
Lorsque vous modifiez le focus à l'aide du clavier (TAB, SHIFT + TAB, etc.), en appelant les méthodes Select ou SelectNextControl ou en définissant la propriété ActiveControl sur le formulaire actuel, les événements de focus de la classe Control se produisent comme suit ordre:
Enter
GotFocus
Leave
Validating
Validated
LostFocus
Lorsque vous modifiez le focus à l'aide de la souris ou en appelant la méthode Focus, les événements de focus de la classe Control se produisent dans l'ordre suivant:
Enter
GotFocus
LostFocus
Leave
Validating
Validated
La commande serait Form.Load
, qui initialise le formulaire et appelle les contrôles, Form.Shown
, qui marque le cadre comme visible (même en C++ , cela se fait après la création du formulaire), et Form.Activated
, qui donne le focus au forum.