2009-06-03 5 views

Répondre

0

Les contrôles Winforms n'ont pas de cycle de vie dans le même sens que les contrôles Web Forms d'asp.net. Les événements de l'interface utilisateur se produisent lorsque l'utilisateur fait quelque chose pour les réaliser.

8

Cela dépend vraiment du moment de sa vie dont vous parlez. Compte tenu de votre estimation à la charge, nous parlons pendant la création/chargement. Cette liste montre quelques événements dans l'ordre qu'ils ont été congédiés dans un simple UserControl que je mis en place pour tester (accroché un certain nombre de EventListeners et imprimé le nom de l'événement à la console):

HandleCreated 
Load 
Layout 
VisibleChanged 
Paint 

Notez que la mise en page , VisibleChanged et Paint n'ont strictement rien à voir avec la création du contrôle; La mise en page et en particulier la peinture peuvent être ou seront levées à plusieurs reprises pendant la durée du contrôle. La même chose vaut pour VisibleChanged qui est levé chaque fois que la valeur de la propriété Visible est modifiée.

+1

+1 - tu m'as battu dessus. J'ai le même résultat - Paint est le dernier. Notez également que CreateControl se produit entre HandleCreated et Load, et PaintBackground se produit avant Paint. –

+0

@Jon B: il n'y a pas d'événement PaintBackground, mais il y a la méthode OnPaintBackground protégée (qui ressemble beaucoup à la méthode de levée d'événement standard, mais qui ne déclenche aucun événement). De toute façon, CreateControl et OnPaintBackground peuvent être utilisés uniquement dans le contrôle utilisateur, et non à partir de code externe (tel que le formulaire hébergeant le contrôle). –

+0

@Jon B: j'ai oublié de mentionner; bons points avec ces deux méthodes encore! :) –

Questions connexes