Quelle est la différence entre les événements Form.Load, Form.Shown et Form.Activated? Quel est l'ordre dans lequel ils sont déclenchés?
Réponses
Trop de publicités?Consultez le cycle de vie des événements Windows Forms:
- Déplacer : Cet événement se produit lorsque le formulaire est déplacé. Bien que par défaut, lorsqu'un formulaire est instancié et lancé, l'utilisateur ne le déplace pas, cet événement est déclenché avant que l'événement Load ne se produise.
- Chargement : Cet événement se produit avant l'affichage d'un formulaire pour la première fois.
- VisibleChanged : Cet événement se produit lorsque la valeur de la propriété Visible change.
- Activé : Cet événement se produit lorsque le formulaire est activé en code ou par l'utilisateur.
- Affiché : Cet événement se produit chaque fois que le formulaire est affiché pour la première fois.
- Peinture : Cet événement se produit lorsque le contrôle est redessiné.
- Désactivation : Cet événement se produit lorsque le formulaire perd le focus et n'est pas le formulaire actif.
- Fermeture : Cet événement se produit lorsque le formulaire est en train de se fermer.
- Fermé : Cet événement se produit lorsque le formulaire est fermé.
-
Le
Load
événement se déclenche lorsque le formulaire a été initialisé, après la création de son gestionnaire mais avant qu'il ne soit affiché. -
Le
Shown
événement se déclenche après la première fois que le formulaire devient visible, lorsque vous appelezform.Show()
(ouform.Visible = true
).
Si vous masquez votre formulaire, puis le montrez à nouveau,Shown
se déclenchera à nouveau. (Mais pas leLoad
) -
Le
Activate
événement se déclenche lorsque l'utilisateur passe à votre formulaire.
Si l'utilisateur passe à un autre programme (ou formulaire), puis revient à votre formulaire,Activate
se déclenchera à nouveau.
De plus, l'événement Form.Activate
peut être déclenché plusieurs fois. Par exemple, si vous ouvrez une boîte de dialogue à partir de votre formulaire, et que lorsque vous cliquez sur n'importe quel bouton de la boîte de dialogue, et que vous revenez au formulaire, Form.Activate
est déclenché. 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 focus et de validation
Lorsque vous changez le focus en utilisant le 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 dans l'ordre suivant :
Enter
GotFocus
Leave
Validating
Validated
LostFocus
Lorsque vous changez le focus en utilisant 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
L'ordre 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 formulaire.