Sonypringu's Blog

Just another WordPress.com weblog

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/

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

 
Ikuti

Get every new post delivered to your Inbox.