Durch geänderte Eigenschaften ausgelöste Ereignisse
Wenn Ihr Steuerelement Benachrichtigungen senden soll, wenn sich eine Eigenschaft namens PropertyName ändert, definieren Sie ein Ereignis namens PropertyNameChanged
und eine Methode namens On
PropertyNameChanged
, die das Ereignis auslöst. Die Benennungskonvention in Windows Forms besteht darin, das Wort Changed (Geändert) an den Namen der Eigenschaft anzufügen. Der zugehörige Ereignisdelegatentyp für Ereignisse mit geänderter Eigenschaft ist EventHandler und der Ereignisdatentyp ist EventArgs. Die Basisklasse Control definiert viele Ereignisse mit geänderter Eigenschaft wie BackColorChanged, BackgroundImageChanged, FontChanged, LocationChanged und andere. Hintergrundinformationen zu Ereignissen finden Sie unter Ereignisse und Ereignisse in Windows Forms-Steuerelementen.
Ereignisse mit geänderter Eigenschaft sind nützlich, da sie es den Benutzern eines Steuerelements ermöglichen, Ereignishandler anzufügen, die auf die Änderung reagieren. Wenn Ihr Steuerelement auf ein von ihm ausgelöstes Ereignis mit geänderter Eigenschaft reagieren muss, setzen Sie die entsprechende On
PropertyNameChanged
-Methode außer Kraft, anstatt einen Delegaten an das Ereignis anzufügen. Ein Steuerelement reagiert in der Regel auf ein Ereignis mit geänderter Eigenschaft, indem es andere Eigenschaften aktualisiert oder seine Zeichenoberfläche ganz oder teilweise neu zeichnet.
Das folgende Beispiel zeigt, wie das benutzerdefinierte Steuerelement FlashTrackBar
auf einige der Ereignisse mit geänderter Eigenschaft reagiert, die es von Control erbt. Das vollständige Beispiel finden Sie unter Vorgehensweise: Erstellen eines Windows Forms-Steuerelements, das den Fortschritt anzeigt.
protected override void OnTextChanged(EventArgs e) {
base.OnTextChanged(e);
Invalidate();
}
protected override void OnBackColorChanged(EventArgs e) {
base.OnBackColorChanged(e);
if ((baseBackground != null) && (!showGradient)) {
baseBackground.Dispose();
baseBackground = null;
}
}
Protected Overrides Sub OnTextChanged(ByVal E As EventArgs)
MyBase.OnTextChanged(E)
Invalidate()
End Sub
Protected Overrides Sub OnBackColorChanged(ByVal E As EventArgs)
MyBase.OnBackColorChanged(E)
If (baseBackground IsNot Nothing) And Not ShowGradient Then
baseBackground.Dispose()
baseBackground = Nothing
End If
End Sub
Siehe auch
.NET Desktop feedback