Property-Changed händelser
Om du vill att kontrollen ska skicka meddelanden när en egenskap med namnet PropertyName ändras definierar du en händelse med namnet PropertyNameChanged
och en metod med namnet On
PropertyNameChanged
som genererar händelsen. Namngivningskonventionen i Windows Forms är att lägga till ordet Ändrad till namnet på egenskapen. Den associerade händelsedelegattypen för egenskapsändringshändelser är EventHandleroch händelsedatatypen är EventArgs. Basklassen Control definierar många egenskapsändringshändelser, till exempel BackColorChanged, BackgroundImageChanged, FontChanged, LocationChangedoch andra. Bakgrundsinformation om händelser finns under Events och Events i Windows Forms Controls.
Egenskapsändringar är användbara eftersom de gör det möjligt för användare av en kontroll att koppla händelsehanterare som svarar på ändringen. Om din kontroll behöver svara på en egenskapsfördelad händelse som den genererar åsidosätter du motsvarande On
PropertyName-Changed
-metod i stället för att koppla ett ombud till händelsen. En kontroll svarar vanligtvis på en egenskaps ändrad händelse genom att uppdatera andra egenskaper eller genom att rita om en del eller hela dess rityta.
I följande exempel visas hur den FlashTrackBar
anpassade kontrollen svarar på några av de egenskapsändringshändelser som den ärver från Control. För det fullständiga exemplet, se Så här: Skapa en Windows Forms-kontroll som visar framsteg.
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
Se även
.NET Desktop feedback