Visual Basic adalah sebuah bahasa pemrograman yang bersifat Event-Driven.
Event – sebuah kejadian yang dipicu oleh user. contohnya: user mengclick tombol, user memilih dari sebuah list, dan lain-lain.
Event Handler – sebuah prosedur yang digunakan untuk menangani event (kejadian) yang dipicu/dibangkitkan oleh user.
misalkan kita pny project dengan form seperti dibawah ini:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("You Click Button 1")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MessageBox.Show("You Click Button 2")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
MessageBox.Show("You Click Button 3")
End Sub
End Class
arti (misalkan kita ambil contoh Button1_Click):
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("You Click Button 1")
End Sub
Handles Button1.Click (cetak warna biru) adalah event click yang akan dipicu ketika user melakukan aktivitas click terhadap Button1.
Event Handler berupa prosedur Button_Click (cetak warna pink) akan dijalankan untuk menangani Event Click yang dipicu oleh user tsb.
selain dengan cara diatas, kita jg diperbolehkan untuk menyatukan beberapa Event untuk dihandle dengan satu buah Event Handler. contoh diatas kalau kita tulis ulang dengan maksud seperti kalimat sebelumnya akan menjadi:
Private Sub EV_Handler(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
Dim button As Button = DirectCast(sender, Button)
Select Case button.Name.ToLower()
Case "button1"
MessageBox.Show("You Click Button 1")
Case "button2"
MessageBox.Show("You Click Button 2")
Case "button3"
MessageBox.Show("You Click Button 3")
End Select
End Sub
Catatan: nama prosedur (Event Handler – cetak warna biru) boleh bebas. DirectCast adalah fungsi yang digunakan untuk melakukan konversi tipe data secara eksplisit.
kita juga dapat menambah dan menghapus Event dan Event Handler pada saat run time.
misalkan form di atas kita ubah menjadi seperti di bawah ini:
kita akan modifikasi code yang ada menjadi seperti berikut ini:
1. buat dulu prosedur yang akan dijadikan sebagai event handler
Private Sub EV_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
Dim button As Button = DirectCast(sender, Button)
Select Case button.Name.ToLower()
Case "button1"
MessageBox.Show("You Click Button 1")
Case "button2"
MessageBox.Show("You Click Button 2")
Case "button3"
MessageBox.Show("You Click Button 3")
End Select
End Sub
2. pada tombol Add Handler, kita tambahkan Event Handler yang akan kita terapkan dalam program tsb. untuk menambahkan Event Handler ke suatu event, kita gunakan perintah AddHandler
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
AddHandler Button1.Click, AddressOf EV_Handler
AddHandler Button2.Click, AddressOf EV_Handler
AddHandler Button3.Click, AddressOf EV_Handler
End Sub
3. pada tombol Remove Handler, kita bisa menghapus kembali Event Handler yang sudah tidak kita gunakan lagi. untuk menghapus Event Handler, gunakan perintah RemoveHandler
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
RemoveHandler Button1.Click, AddressOf EV_Handler
RemoveHandler Button2.Click, AddressOf EV_Handler
RemoveHandler Button3.Click, AddressOf EV_Handler
End Sub
ok, Selamat mencoba.
Rgds
Adi
2 komentar:
hheee....heeee.....
copy blognya lagi ya pak.....
jadi Event Handler, prosedurnya, maksudnya codenya?
Posting Komentar