Compartir a través de


Eventos de cambio de propiedades

Si desea que el control envíe notificaciones cuando cambia una propiedad denominada nombreDePropiedad, defina un evento denominado nombreDePropiedadChanged y un método denominado OnnombreDePropiedadChanged que provoque el evento. Según la convención de nomenclatura de los formularios Windows Forms, se debe agregar la palabra Changed al nombre de la propiedad. El tipo de delegado de evento asociado para los eventos de cambio de propiedades es EventHandler y el tipo de datos de evento es EventArgs. La clase base Control define muchos eventos de cambio de propiedades, como BackColorChanged, BackgroundImageChanged, FontChanged, LocationChanged, y otros. Para obtener información adicional sobre los eventos, vea Controlar y provocar eventos y Eventos de los controles de formularios Windows Forms.

Los eventos de cambio de propiedades son de utilidad ya que permiten a los consumidores de un control agregar controladores de eventos que respondan al cambio. Si el control ha de responder a un evento de cambio de propiedades provocado por él mismo, debe invalidarse el método OnnombreDePropiedadChanged correspondiente en vez de asociar un delegado al evento. Los controles responden normalmente a un evento PropertyChanged actualizando otras propiedades o volviendo a dibujar toda su superficie de dibujo o parte de la misma.

En el siguiente ejemplo se muestra cómo el control personalizado FlashTrackBar responde a algunos de los eventos de cambio de propiedades que hereda de Control. Para obtener el ejemplo completo, vea Cómo: Crear un control de formularios Windows Forms que muestre el progreso.

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

Vea también

Conceptos

Eventos de los controles de formularios Windows Forms

Otros recursos

Controlar y provocar eventos

Propiedades de los controles de formularios Windows Forms