Freigeben über


Durch geänderte Eigenschaften ausgelöste Ereignisse

Wenn das Steuerelement Benachrichtigungen senden soll, wenn 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 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;
    }
}

Siehe auch

Konzepte

Ereignisse in Windows Forms-Steuerelementen

Weitere Ressourcen

Behandeln und Auslösen von Ereignissen
Eigenschaften von Windows Forms-Steuerelementen