Événements de modification de propriété
Si vous souhaitez que votre contrôle envoie des notifications lorsqu'une propriété nommée PropertyName change, définissez un événement nommé PropertyNameChanged et une méthode nommée OnPropertyNameChanged qui déclenche l'événement. La convention d'affectation de noms dans Windows Forms spécifie l'ajout du mot Changed au nom de la propriété. Le type délégué d'événement associé pour les événements de modification de propriété est EventHandler et le type des données d'événement est EventArgs. La classe de base Control définit beaucoup d'événements changés par la propriété, par exemple BackColorChanged, BackgroundImageChanged, FontChanged, LocationChanged, et d'autres. Pour plus informations générales sur les événements, consultez Gestion et déclenchement d'événements et Événements dans les contrôles Windows Forms.
Les événements de modification de propriété sont utiles, car ils permettent aux consommateurs d'un contrôle d'attacher des gestionnaires d'événements qui répondent à la modification. Si votre contrôle doit répondre à un événement de modification de propriété qu'il déclenche, substituez la méthode OnPropertyNameChanged correspondante plutôt que d'attacher un délégué à l'événement. Un contrôle répond généralement à un événement de modification de propriété en mettant à jour d'autres propriétés ou encore en redessinant une partie ou la totalité de sa surface de dessin.
L'exemple suivant montre comment le contrôle personnalisé FlashTrackBar
répond à certains événements de modification de propriété qu'il hérite de Control. Pour l'exemple complet, consultez Comment : créer un contrôle Windows Forms qui affiche la progression.
Protected Overrides Sub OnTextChanged(ByVal E As EventArgs)
MyBase.OnTextChanged(E)
Invalidate()
End Sub
Protected Overrides Sub OnBackColorChanged(ByVal E As EventArgs)
MyBase.OnTextChanged(E)
If Not (baseBackground Is Nothing) And Not ShowGradient Then
baseBackground.Dispose()
baseBackground = Nothing
End If
End Sub
protected override void OnTextChanged(EventArgs e) {
base.OnTextChanged(e);
Invalidate();
}
protected override void OnBackColorChanged(EventArgs e) {
base.OnTextChanged(e);
if ((baseBackground != null) && (!showGradient)) {
baseBackground.Dispose();
baseBackground = null;
}
}
Voir aussi
Concepts
Événements dans les contrôles Windows Forms
Autres ressources
Gestion et déclenchement d'événements
Propriétés dans les contrôles Windows Forms