события Property-Changed
Если вы хотите, чтобы элемент управления отправлял уведомления при изменении свойства с именем PropertyName, определите событие с именем PropertyNameChanged
и метод с именем On
PropertyNameChanged
, который вызывает событие. Соглашение об именовании в Windows Forms заключается в добавлении слова Изменено к имени свойства. Связанный тип делегата для событий изменения свойств — EventHandler, а тип данных события — EventArgs. Базовый класс Control определяет множество событий изменения свойств, таких как BackColorChanged, BackgroundImageChanged, FontChanged, LocationChangedи другие. Дополнительные сведения о событиях см. в Events и Events in Windows Forms Controls.
События изменения свойств полезны, так как они позволяют пользователям контролов присоединять обработчики событий, реагирующие на изменение. Если элемент управления должен реагировать на событие изменения свойства, переопределите соответствующий метод On
PropertyNameChanged
, вместо присоединения делегата к событию. Элемент управления обычно реагирует на событие изменения свойства, обновляя другие свойства или перерисовывая некоторые или все свои области рисования.
В следующем примере показано, как FlashTrackBar
настраиваемый элемент управления реагирует на некоторые события изменения свойств, наследуемые от Control. Полный пример см. в разделе Практическое руководство. Создание элемента управления Windows Forms, показывающего ход выполнения.
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
См. также
.NET Desktop feedback