Compartir a través de


Definir un evento en los controles de formularios Windows Forms

Para obtener información detallada sobre cómo definir eventos personalizados, vea Provocar un evento. Si define un evento que no tiene datos asociados, use el tipo base para los datos del evento, EventArgs, y use EventHandler como el delegado de eventos. Lo único que queda por hacer es definir un miembro de evento y un método OnnombreDeEvento protegido que provoque el evento.

En el siguiente fragmento de código se muestra cómo el control personalizado FlashTrackBar define un evento personalizado, ValueChanged. Para obtener el código completo del ejemplo FlashTrackBar, vea Cómo: Crear un control de formularios Windows Forms que muestre el progreso.

Option Explicit
Option Strict

Imports System
Imports System.Windows.Forms
Imports System.Drawing

Public Class FlashTrackBar
   Inherits Control
   
   ' The event does not have any data, so EventHandler is adequate 
   ' as the event delegate.        
   ' Define the event member using the event keyword.
   ' In this case, for efficiency, the event is defined 
   ' using the event property construct.
   Public Event ValueChanged As EventHandler
   ' The protected method that raises the ValueChanged 
   ' event when the value has actually 
   ' changed. Derived controls can override this method.  
   Protected Overridable Sub OnValueChanged(e As EventArgs)
      RaiseEvent ValueChanged(Me, e)
   End Sub
End Class
using System;
using System.Windows.Forms;
using System.Drawing;

public class FlashTrackBar : Control {
   // The event does not have any data, so EventHandler is adequate 
   // as the event delegate.
   private EventHandler onValueChanged;
   // Define the event member using the event keyword.
   // In this case, for efficiency, the event is defined 
   // using the event property construct.
   public event EventHandler ValueChanged {
            add {
                onValueChanged += value;
            }
            remove {
                onValueChanged -= value;
            }
        }
   // The protected method that raises the ValueChanged
   // event when the value has actually 
   // changed. Derived controls can override this method.  
   protected virtual void OnValueChanged(EventArgs e) {
      if (ValueChanged != null) {
         ValueChanged(this, e);
      }
   }
}

Vea también

Conceptos

Eventos de los controles de formularios Windows Forms

Provocar un evento

Otros recursos

Controlar y provocar eventos