Definieren eines Ereignisses in Windows Forms-Steuerelementen

Aktualisiert: November 2007

Ausführliche Informationen zum Definieren benutzerdefinierter Ereignisse finden Sie unter Auslösen eines Ereignisses. Verwenden Sie, wenn Sie ein Ereignis definieren, dem keine Daten zugeordnet sind, für die Ereignisdaten den Basistyp EventArgs, und verwenden Sie als Ereignisdelegaten EventHandler. Nun müssen lediglich ein Ereignismember sowie eine geschützte OnEventName-Methode definiert werden, die das Ereignis auslöst.

Im folgenden Codefragment wird gezeigt, wie das benutzerdefinierte Steuerelement FlashTrackBar das benutzerdefinierte Ereignis ValueChanged definiert. Den vollständigen Code für das FlashTrackBar-Beispiel finden Sie unter Gewusst wie: Erstellen eines Windows Forms-Steuerelements, das den Fortschritt anzeigt.

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

Siehe auch

Konzepte

Ereignisse in Windows Forms-Steuerelementen

Auslösen eines Ereignisses

Weitere Ressourcen

Behandeln und Auslösen von Ereignissen