Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Associa un evento a un gestore eventi in fase di esecuzione.
Sintassi
AddHandler event, {AddressOf eventhandler | expression }
Parti
| Parte | Descrizione |
|---|---|
event |
Nome dell'evento da gestire. |
eventhandler |
Nome di una routine che gestisce l'evento. |
expression |
Espressione lambda che gestisce l'evento. |
Le parti AddressOf eventhandler e expression si escludono a vicenda.
Osservazioni:
Le AddHandler istruzioni e RemoveHandler consentono di avviare e arrestare la gestione degli eventi in qualsiasi momento durante l'esecuzione del programma.
La firma del nuovo gestore eventi (la routine o l'espressione eventhandlerexpression lambda) deve corrispondere alla firma dell'evento event.
La Handles parola chiave e l'istruzione AddHandler consentono entrambi di specificare che determinate procedure gestiscono eventi specifici, ma esistono differenze. L'istruzione AddHandler connette le procedure agli eventi in fase di esecuzione. Usare la Handles parola chiave quando si definisce una routine per specificare che gestisce un determinato evento. Per altre informazioni, vedere Handle.
Un gestore aggiunto con un'espressione lambda esplicita NON PUÒ essere rimosso in un secondo momento (usando RemoveHandler). In effetti, se all'espressione lambda non viene assegnato un nome, non è possibile farvi riferimento in un secondo momento. Tuttavia, l'assegnazione dell'espressione lambda a una variabile e l'aggiunta del gestore tramite questa variabile consente di rimuovere il gestore usando questa variabile.
Annotazioni
Per gli eventi personalizzati, l'istruzione AddHandler richiama la funzione di accesso dell'evento AddHandler . Per altre informazioni sugli eventi personalizzati, vedere Istruzione event.
Esempio
Nell'esempio seguente viene illustrato come usare AddHandler con ConvertEventHandler i delegati per gli scenari di data binding. In questo esempio viene illustrato un caso d'uso pratico in cui i gestori eventi sono associati a Format e Parse gli eventi di un Binding oggetto da convertire tra valori decimali e stringhe di valuta.
Public Class DataBindingExample
Private textBox1 As TextBox
Private ds As DataSet
Public Sub New()
textBox1 = New TextBox()
ds = New DataSet()
SetupSampleData()
BindControlWithAddHandler()
End Sub
Private Sub SetupSampleData()
Dim table As New DataTable("Orders")
table.Columns.Add("OrderAmount", GetType(Decimal))
table.Rows.Add(123.45D)
table.Rows.Add(67.89D)
ds.Tables.Add(table)
End Sub
Private Sub BindControlWithAddHandler()
Dim binding As New Binding("Text", ds, "Orders.OrderAmount")
' Use AddHandler to associate ConvertEventHandler delegates
AddHandler binding.Format, AddressOf DecimalToCurrency
AddHandler binding.Parse, AddressOf CurrencyToDecimal
textBox1.DataBindings.Add(binding)
End Sub
Private Sub DecimalToCurrency(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(String) Then
Return
End If
e.Value = CDec(e.Value).ToString("c")
End Sub
Private Sub CurrencyToDecimal(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(Decimal) Then
Return
End If
e.Value = Convert.ToDecimal(e.Value.ToString())
End Sub
End Class
' Simple example for basic AddHandler usage
Sub TestBasicEvents()
Dim Obj As New Class1
AddHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
' Lambda expression example
AddHandler Obj.Ev_Event, Sub ()
MsgBox("Lambda caught event.")
End Sub
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
Public Event Ev_Event()
Sub CauseSomeEvent()
RaiseEvent Ev_Event()
End Sub
End Class
Questo esempio mostra:
- Creazione di un
Bindingoggetto per il data binding. - Utilizzo
AddHandlerdi per associareConvertEventHandlerdelegati agliFormateventi eParse. - Implementazione dei metodi del gestore eventi che vengono convertiti tra formati di stringa decimale e valuta.
- Utilizzo di base
AddHandlercon eventi personalizzati ed espressioni lambda.