Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengaitkan peristiwa dengan penanganan aktivitas pada waktu proses.
Sintaksis
AddHandler event, {AddressOf eventhandler | expression }
Bagian
| Bagian | Deskripsi |
|---|---|
event |
Nama peristiwa yang akan ditangani. |
eventhandler |
Nama prosedur yang menangani peristiwa. |
expression |
Ekspresi lambda yang menangani peristiwa. |
Bagian-bagian AddressOf eventhandler dan expression saling eksklusif.
Komentar
Pernyataan AddHandler dan RemoveHandler memungkinkan Anda untuk memulai dan menghentikan penanganan peristiwa kapan saja selama eksekusi program.
Tanda tangan penanganan aktivitas baru ( eventhandler prosedur atau expression lambda) harus cocok dengan tanda tangan peristiwa event.
Kata Handles kunci dan AddHandler pernyataan keduanya memungkinkan Anda menentukan bahwa prosedur tertentu menangani peristiwa tertentu, tetapi ada perbedaan. Pernyataan ini AddHandler menyambungkan prosedur ke peristiwa pada waktu proses.
Handles Gunakan kata kunci saat menentukan prosedur untuk menentukan bahwa ia menangani peristiwa tertentu. Untuk informasi selengkapnya, lihat Menangani.
Handler yang ditambahkan dengan lambda eksplisit TIDAK DAPAT dihapus nanti (menggunakan RemoveHandler). Memang, jika lambda tidak diberi nama, tidak mungkin untuk mereferensikannya nanti. Tetapi menetapkan lambda ke variabel dan menambahkan handler melalui variabel ini memungkinkan untuk menghapus handler menggunakan variabel ini.
Nota
Untuk peristiwa kustom, AddHandler pernyataan memanggil aksesor peristiwa AddHandler . Untuk informasi selengkapnya tentang peristiwa kustom, lihat Pernyataan Peristiwa.
Contoh
Contoh berikut menunjukkan cara menggunakan AddHandler dengan ConvertEventHandler delegasi untuk skenario pengikatan data. Contoh ini menunjukkan kasus penggunaan praktis di mana penanganan aktivitas dilampirkan ke Format dan Parse peristiwa Binding objek untuk dikonversi antara nilai desimal dan string mata uang.
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
Contoh ini menunjukkan:
- Membuat
Bindingobjek untuk pengikatan data. - Menggunakan
AddHandleruntuk melampirkanConvertEventHandlerdelegasi keFormatperistiwa danParse. - Menerapkan metode penanganan aktivitas yang mengonversi antara format string desimal dan mata uang.
- Penggunaan dasar
AddHandlerdengan peristiwa kustom dan ekspresi lambda.