Senin, 06 Februari 2012

Add Event Handler To Array Object

Salam SUPER semuanya? heheh kayak Mario Teguh saja ya... Sebelumnya saya sudah pernah memposting tentang array bagian1 dan bagian2, Baiklah kali ini saya akan melanjutkan bahasan array yaitu bagaimana  cara menambahkan event handler pada object array. Karena object array TIDAK bisa di deklarasikan dengan "withevents", contoh : 
Dim WithEvents ArrayObject() As TextBox

Jika kita mendeklarasikan seperti itu maka akan muncul error di error list :
"Error 1 'WithEvents' variables cannot be typed as arrays"

Nah, lalu bagaimana untuk mendapatkan event pada ArrayObject ini ? seperti event: Click, TextChanged, GotFocus dan sebagainya.Baiklah caranya cukup mudah, simak baik baik ya...
1. Buat private sub yang akan kita gunakan sebagai event handler, contoh:
  • Untuk membuat event click, maka buatlah private sub sendiri, contoh: 
Private Sub EventClick_TextBox(ByVal sender As System.Object, ByVal e As System.EventArgs)
'isi dengan perintah apa saja yang ingin dilakukan saat textbox diclick,contoh
   Dim txt As TextBox = DirectCast(sender, TextBox)
   txt.BackColor = Color.Aquamarine 
End Sub

  • Untuk membuat event TextChanged, maka buatlah private sub sendiri, contoh: 
Private Sub EventTextChanged_TextBox(ByVal sender As Object, ByVal e As System.EventArgs)
'isi dengan perintah apa saja yang ingin dilakukan saat text berubah,contoh
   If IsNumeric(sender.text) = False Then sender.text = 0
End Sub

Nah selanjutnya kita implementasikan private sub yang sudah kita buat tadi pada ArrayObject, Caranya adalah dengan menggunakan AddHandler dan AddressOf contoh :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 0 To ArrayObject.Length - 1
            ArrayObject(i) = New TextBox
            AddHandler ArrayObject(i).Click, AddressOf EventClick_TextBox
            AddHandler ArrayObject(i).TextChanged, AddressOf EventTextChanged_TextBox
        Next
End Sub

Jadi hasilnya adalah jika textbox textbox itu di click maka backcolor nya aka berubah warna dan jika text nya berubah dan tidak numerik/angka maka text nya akan langsung menjadi nol (0).Catatan: implementasi ini tidak harus di Form_Load, terserah tergantung kebutuhan saja. Selamat  mencoba !

Ditulis Oleh : Wahyu Aji // 20.01
Kategori:

0 komentar:

Posting Komentar