Menangani EvenHandler Komponen
Posted by sonypringu pada April 16, 2010
Menangani EvenHandler Komponen
Tujuan dari tutorial ini adalah kita akan dapat menyederhanakan penulisan source code.
Untuk para proggramer yang sering menggunnakan VB6.0 mungkin salah satu yang wajib untuk dipelajari yaitu mengenai event dan event handler. kemungkinan biasa kita sering membuat sebuah event handler dengan cara standart.
Misalnya kita mempunyai tiga buah event handler pada tiap-tiap komponen butoon seperti source code di bawah ini :
Private Sub Btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsave.Click
Msgbox(“Save”)
end sub
Private Sub BtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDelete.Click
Msgbox(“Delete”)
end sub
Private Sub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click
Msgbox(“Cancel”)
end sub
Dari ketiga even handler komponen seperti di atas sebenarnya dapat kita lakukan penyerdehaan penulisan kode menjadi satu buah event handler yang menangani lebih dari satu event untuk masing-masing komponen, dengan syarat event hanlder yang mirip dan dari komponen yang sama. Intinya terdapat pada handles keyword.
Private sub ClickEventHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles btnsave.click, Btncancel.click, Btndelete.click
end sub
Setelah Handles keyword kita tinggal mendifinisikan event-event yang akan dibuat hanldernya dari masing-masing komponen dengan dipisahkan dengan tanda koma. Sekarang kita akan melakukan pentriggeran pada event tersebut. dengan variabel sender yang terdapat pada parameter pertama di prosedur tersebut, yang dilakua adalah melakukan casting explicit ke kontrol yang mentrigger event tsb. Setelah didapatkan object nya maka kita dapat memanfaatkan properti yang dimiliki oleh kontrol tsb untuk identifikasi. Properti yang mudah dan umum digunakan yaitu properti Name. Berikut code nya :
Private sub ClickEventHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles btnsave.click, Btncancel.click, Btndeleate.click
dim abutton = directcast(sender,button)
select case abutton.name.tolower
case”btnsave”
msgbox(“save”)
case”btncancel”
msgbox(“cancel”)
case”btndelete”
msgbox(“delete”)
end select
end sub
membuat handler secara dinamis, pertama kita buat event handler dengan signature nya yang sama tanpa handles keyword.
Private sub ClickEventHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
dim abutton = directcast(sender,button)
select case abutton.name.tolower
case “btnsave”
msgbox(“save”)
case “btndelete”
msgbox(“delete”)
case”btncancel”
msgbox(“cancel”)
end select
end sub
selanjutnya yang harus kita lakukan adalah proses assignment, gunakan addhandler keyword. kita dapat menempatkan perintah tersebut dimana saja, saya menggunakan perintah tersebut di event form load
Private sub eventandeventhandler_load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Mybase.load
AddHandler btnSave.Click, AddressOf ClickEventHandler
AddHandler btnCancel.Click, AddressOf ClickEventHandler
AddHandler btnDelete.Click, AddressOf ClickEventHandler
end sub
Perintah removehandler digunakan untuk memutuskan asosiasi antara event dan eventhandlernya labih dari satu kali penulisan kodenya sebagai berikut
Private sub btnRemoveHandler_Click()
RemoveHandler btnSave.Click, AddressOf ClickEventHandler
RemoveHandler btnCancel.Click, AddressOf ClickEventHandler
RemoveHandler btnDelete.Click, AddressOf ClickEventHandler
end sub
http://waroengvb.net/menangani-event-handler-di-vb-net/