Události změny vlastnosti
Pokud chcete, aby váš ovládací prvek odesílal oznámení, když se změní vlastnost s názvem PropertyName, definujte událost s názvem PropertyNameChanged
a metodu s názvemOn
PropertyNameChanged
, která vyvolá událost. Konvence vytváření názvů v model Windows Forms je připojit slovo Změněno k názvu vlastnosti. Přidružený typ delegáta události pro události změněné vlastností je EventHandlera datový typ události je EventArgs. Základní třída Control definuje mnoho událostí změněných vlastností, například BackColorChanged, BackgroundImageChanged, FontChanged, LocationChangeda další. Základní informace o událostech naleznete v tématu Události a události v ovládacích prvcích model Windows Forms.
Události změněné vlastností jsou užitečné, protože umožňují uživatelům ovládacího prvku připojit obslužné rutiny událostí, které na změnu reagují. Pokud váš ovládací prvek potřebuje reagovat na událost změněnou vlastností, kterou vyvolá, přepište odpovídající On
metodu PropertyNameChanged
místo připojení delegáta k události. Ovládací prvek obvykle reaguje na událost změněnou vlastností tím, že aktualizuje jiné vlastnosti nebo překreslí některé nebo všechny jeho plochy výkresu.
Následující příklad ukazuje, jak FlashTrackBar
vlastní ovládací prvek reaguje na některé z událostí změněných vlastností, které dědí z Control. Úplnou ukázku najdete v tématu Postupy: Vytvoření ovládacího prvku model Windows Forms, který zobrazuje průběh.
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
Viz také
.NET Desktop feedback