EventHandler-Delegat

Stellt die Methode dar, die ein Ereignis behandelt, das keine Ereignisdaten besitzt.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Delegate Sub EventHandler ( _
    sender As Object, _
    e As EventArgs _
)
'Usage
Dim instance As New EventHandler(AddressOf HandlerMethod)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler (
    Object sender,
    EventArgs e
)
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler (
    Object^ sender, 
    EventArgs^ e
)
/** @delegate */
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public delegate void EventHandler (
    Object sender, 
    EventArgs e
)
JScript unterstützt die Verwendung von Delegaten, aber nicht die Deklaration von neuen Delegaten.

Parameter

  • sender
    Die Quelle des Ereignisses.
  • e
    Ein EventArgs, das keine Ereignisdaten enthält.

Hinweise

Das Ereignismodell von .NET Framework basiert auf dem Vorhandsein eines Ereignisdelegaten, der ein Ereignis mit dem entsprechenden Handler verbindet. Zum Auslösen eines Ereignisses werden zwei Elemente benötigt:

  • Ein Delegat, der die Methode identifiziert, mit der auf das Ereignis reagiert wird.

  • Eine Klasse, die die Ereignisdaten enthält.

Der Delegat ist ein Typ, der eine Signatur definiert, also den Typ des Rückgabewerts und die Typen der Parameterliste für eine Methode. Sie können den Delegattyp zum Deklarieren einer Variablen verwenden, die auf eine beliebige Methode verweisen kann, die die gleiche Signatur wie der Delegat aufweist.

In der Standardsignatur eines Ereignishandlerdelegaten wird eine Methode definiert, die keinen Wert zurückgibt. Der erste Parameter der Methode ist vom Typ Object und verweist auf die Instanz, die das Ereignis auslöst. Der zweite Parameter ist vom Typ EventArgs abgeleitet und enthält die Ereignisdaten. Wenn das Ereignis keine Ereignisdaten generiert, ist der zweite Parameter einfach eine Instanz von EventArgs. Andernfalls ist der zweite Parameter ein benutzerdefinierter Typ, der vom Typ EventArgs abgeleitet ist und alle Felder oder Eigenschaften bereitstellt, die zum Speichern der Ereignisdaten benötigt werden.

EventHandler ist ein vordefinierter Delegat, der eine spezielle Ereignishandlermethode für ein Ereignis darstellt, das keine Daten generiert. Wenn Ihr Ereignis Daten generiert, müssen Sie einen benutzerdefinierten Ereignisdatentyp bereitstellen und entweder einen Delegaten erstellen, bei dem der Typ des zweiten Parameters Ihrem benutzerdefinierten Typ entspricht, oder die generische EventHandler-Delegatklasse verwenden und den Parameter für den generischen Typ durch den benutzerdefinierten Typ ersetzen.

Um das Ereignis der Ereignisbehandlungsmethode zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird.

Weitere Informationen über Ereignishandlerdelegaten finden Sie unter Ereignisse und Delegaten.

Thema Position
Gewusst wie: Dynamisches Binden von Ereignishandlern zur Laufzeit in ASP.NET-Webseiten Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Dynamisches Binden von Ereignishandlern zur Laufzeit in ASP.NET-Webseiten Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Dynamisches Binden von Ereignishandlern zur Laufzeit in ASP.NET-Webseiten Erstellen von ASP.NET-Webanwendungen

Beispiel

Im folgenden Codebeispiel wird das Deklarieren eines Ereignishandlerdelegaten veranschaulicht, der keine Ereignisdaten verwendet. Die EventHandler-Klasse ist der Typ des Ereignisdelegaten, sender ist das Objekt, das das Ereignis auslöst, und e ist ein Ereignisdatenobjekt, das keine Daten enthält. In der zweiten Codezeile im Beispiel wird der Ereignismember in Ihrer Klasse für ein Ereignis definiert, das keine Daten besitzt.

Delegate Sub EventHandler(sender As Object, e As EventArgs)
   
Public Event NoDataEventHandler As EventHandler
public delegate void EventHandler(Object sender, EventArgs e);
public event EventHandler NoDataEventHandler;
public:
   delegate void EventHandler( Object^ sender, EventArgs^ e );

   event EventHandler^ NoDataEventHandler;
public delegate void EventHandler(Object sender, EventArgs e);

public EventHandler noDataEventHandler = null;

/** @event 
 */
public void add_NoDataEventHandler(EventHandler p)
{
    noDataEventHandler =(EventHandler)System.Delegate.
        Combine(noDataEventHandler, p);
}//add_NoDataEventHandler

/** @event 
 */
public void remove_NoDataEventHandler(EventHandler p)
{
    noDataEventHandler =(EventHandler)System.Delegate.
        Remove(noDataEventHandler, p);
}// remove_NoDataEventHandler

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

System-Namespace
EventHandler
EventArgs-Klasse
Delegate-Klasse

Weitere Ressourcen

Ereignisse und Delegaten