Delegato EventHandler
Aggiornamento: novembre 2007
Rappresenta il metodo di gestione dell'evento che non dispone di dati dell'evento.
Assembly: mscorlib (in mscorlib.dll)
[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 non supporta i delegati.
Parametri
- sender
- Tipo: System.Object
Origine dell'evento.
- e
- Tipo: System.EventArgs
Oggetto EventArgs che non contiene dati dell'evento.
Il modello di evento in .NET Framework si basa su un delegato dell'evento che connette un evento al relativo gestore. Per generare un evento, sono necessari due elementi:
Delegato che identifica il metodo che fornisce la risposta all'evento.
Una classe che contenga i dati dell'evento.
Un delegato è un tipo che definisce una firma, ovvero il tipo del valore restituito e i tipi relativi all'elenco dei parametri di un metodo. Il tipo delegato può essere utilizzato per dichiarare una variabile che può fare riferimento a qualsiasi metodo con la stessa firma del delegato.
La firma standard di un delegato del gestore eventi definisce un metodo che non restituisce alcun valore. Il primo parametro di tale metodo è di tipo Object e fa riferimento all'istanza che genera l'evento, mentre il secondo parametro è derivato dal tipo EventArgs e contiene i dati dell'evento. Se l'evento non genera dati dell'evento, il secondo parametro è semplicemente un'istanza di EventArgs. In caso contrario, il secondo parametro è un tipo personalizzato derivato da EventArgs e contiene i campi e le proprietà in cui inserire i dati dell'evento.
EventHandler è un delegato predefinito che rappresenta in modo specifico un metodo di gestione eventi per un evento che non genera dati. Se l'evento genera dati, è necessario fornire un tipo personalizzato di dati dell'evento e creare un delegato dove il tipo del secondo parametro è rappresentato dal tipo personalizzato, oppure utilizzare la classe di delegato generica EventHandler<TEventArgs> e sostituire il tipo personalizzato al parametro del tipo generico.
Per associare l'evento al metodo di gestione dell'evento, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene richiamato ogni qualvolta si verifica l'evento, a meno che non venga rimosso il delegato.
Per ulteriori informazioni sui delegati di gestori eventi, vedere Eventi e delegati.
| Topic | Location |
|---|---|
| Procedura: associare dinamicamente i gestori di eventi in fase di esecuzione nelle pagine Web ASP.NET | Generazione di applicazioni Web ASP.NET |
| Procedura: associare dinamicamente i gestori di eventi in fase di esecuzione nelle pagine Web ASP.NET | Compilazione di applicazioni Web ASP.NET in Visual Studio |
Nel codice di esempio riportato di seguito viene illustrata la dichiarazione di un delegato del gestore eventi che non utilizza dati dell'evento. La classe EventHandler rappresenta il tipo del delegato dell'evento, sender è l'oggetto che genera l'evento e e è un oggetto dati dell'evento in cui non sono contenuti dati. La seconda riga di codice dell'esempio definisce il membro evento nella classe per un evento senza dati.
public delegate void EventHandler(Object sender, EventArgs e); public 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
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile per Smartphone, Windows Mobile per Pocket PC, Xbox 360
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.