Durch geänderte Eigenschaften ausgelöste Ereignisse
Aktualisiert: November 2007
Wenn das Steuerelement Benachrichtigungen senden soll, sobald sich eine Eigenschaft mit dem Namen PropertyName ändert, müssen Sie ein Ereignis mit dem Namen PropertyNameChanged und eine Methode mit dem Namen OnPropertyNameChanged definieren, die das Ereignis auslöst. Gemäß der Konvention für die Namensgebung in Windows Forms muss das Wort Changed hinter dem Namen der Eigenschaft angefügt werden. Der zugeordnete Ereignisdelegattyp für durch geänderte Eigenschaften ausgelöste Ereignisse ist EventHandler, der Ereignisdatentyp ist EventArgs. Die Basisklasse Control definiert viele durch geänderte Eigenschaften ausgelöste Ereignisse, z. B. BackColorChanged, BackgroundImageChanged, FontChanged, LocationChanged. Hintergrundinformationen über Ereignisse finden Sie unter Behandeln und Auslösen von Ereignissen und Ereignisse in Windows Forms-Steuerelementen.
Änderungsereignisse für Eigenschaften sind sinnvoll, da Consumer eines Steuerelements mit ihrer Hilfe Ereignishandler verknüpfen können, die auf die Änderung reagieren. Wenn das Steuerelement auf ein durch geänderte Eigenschaften ausgelöstes Ereignis reagieren soll, überschreiben Sie die entsprechende OnPropertyNameChanged-Methode, anstatt einen Delegaten an das Ereignis anzufügen. Ein Steuerelement reagiert in der Regel auf ein Änderungsereignis für eine Eigenschaft, indem es andere Eigenschaften aktualisiert oder einen Teil bzw. die gesamte Zeichnungsoberfläche neu zeichnet.
Im folgenden Beispiel wird gezeigt, wie das benutzerdefinierte Steuerelement FlashTrackBar auf einige der durch geänderte Eigenschaften ausgelösten Ereignisse reagiert, die es von Control erbt. Das vollständige Beispiel finden Sie unter Gewusst wie: Erstellen eines Windows Forms-Steuerelements, das den Fortschritt anzeigt.
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 (baseBackground IsNot 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;
}
}
Siehe auch
Konzepte
Ereignisse in Windows Forms-Steuerelementen