属性更改事件

如果希望控件在名为属性名称 的属性发生更改时发送通知,则请定义一个名为属性名称Changed 的事件,以及一个名为 On属性名称Changed 的方法来引发该事件。 Windows 窗体中的命名规则是在属性的名称后追加 Changed 一词。 property-changed 事件的关联事件委托类型为 EventHandler,事件数据类型为 EventArgsControl 基类定义了许多 property-changed 事件,例如 BackColorChangedBackgroundImageChangedFontChangedLocationChanged 等。 有关事件的背景信息,请参见 处理和引发事件Windows 窗体控件中的事件

Property-changed 事件非常有用,因为它们允许控件的使用者附加对更改进行响应的事件处理程序。 如果控件需要对它所引发的 property-changed 事件进行响应,则需要重写相应的 On属性名称Changed 方法,而不是给事件附加委托。 控件通常通过更新其他属性或重新绘制某些或全部绘制图面,对 property-changed 事件作出响应。

下面的示例演示 FlashTrackBar 自定义控件对某些继承自 Control 的 property-changed 事件的响应方式。 有关完整示例,请参见 如何:创建显示进度的 Windows 窗体控件

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
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;
    }
}

请参见

概念

Windows 窗体控件中的事件

其他资源

处理和引发事件

Windows 窗体控件中的属性