Kamis, 07 Februari 2013

Cara Validasi TextBox hanya Angka dan Backspace pada VB.Net

Pertama2 buatlah sebuah textbox di form anda. Dan aturlah propertiesnya sesuai kebutuhan. mungkin namanya, tulisannya, potitionnya, dll. Apabila sudah masuk ke bagian codingnya. kalo bingung cara masuk ke bagian coding, caranya double clik aja pada form yang kita buat. atau pada bagian sollution Explorer pilih form yang kita buat, kalo belum diganti nama formnya biasanya bernama form1.vb lalu pada form1.vb klik kanan dan pilih view code. Tampilannya seperti dibawah ini
Pada bagian yang ditunjuk oleh nomor 1 yang bertuliskan Form1 apabila kita mengklik tanda panahnya yang di sebelah kanan maka akan muncul nama-nama object yang telah kita buat sebelumnya. object-object yang dimaksud seperti : textbox, button, label, datagridview, dll.

Sedangkan pada bagian yang ditunjuk oleh nomor 2 yang bertuliskan (Declaration) biasanya merupakan daftar event yang ada pada object tersebut. misal click, textchange, dll.




Nah sekarang pada bagian 1 pilih nama textbox yang tadi kita buat. kalo belum diubah-ubah nama default adalah textbox1, lalu pada bagian 2 pilih KeyPress. Kenapa kita pilih event KeyPress? Karena untuk mengecek dan mendisable input yang dimasukan user biasanya kita lakukan di event ini. Gampangnya event ini dijalankan bila pada textbox terjadi keypress dari user / ketika user menekan keyboardnya.
Lalu untuk codingnya cuman seperti ini

If IsNumeric(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If

penjelasannya :
e.KeyChar berfungsi untuk mendapatkan value / data yang di input oleh user.
yang nantinya dicek oleh IsNumeric. Lalu bila true maka akan menjalankan fungsi e.Handled = false, sedangkan kalu false maka e.handled = true yang akan dijalankan. Oh iya coding diatas untuk membuat textbox hanya bisa numeric atau angka saja yach..

Apakah fungsi dari e.handled = false dan e.handled = true? hmm.. mungkin biar gampang saya jelaskan dengan perumpamaan aja. Sekarang asumsikan e.handled itu sebagai polisi yang menilang. Kemudian true dan false sebagai status polisinya. apabila true maka polisinya berarti menilang, dan bila false maka polisinya tidak menilang. dan untuk isnumeric kita asumsikan sebagai pengendara motor, Maka penjelasan / cerita secara keseluruhannya. ketika si pengendara motor itu benar(ini artinya: nilai dari isnumeric(e.keychar) adalah true), maka polisi tidak akan menilang si pengendara motor(e.handled =false), dan pengendara motor tersebut dapat tetap berjalan. tetapi apabila pengendara motor itu salah(ini artinya: nilai dari isnumeric(e.keychar) adalah false), maka secara otomatis polisi akan menilangnya(e.handled =true), dan pengendara motor tidak dapat berjalan. akibat dari penilangan ini si pengendara motor tidak dapat berjalan lagi.
Sedangkan bila dalam program ini artinya ketilang berarti perintah tersebut dibatalkan atau tidak dilakukan. maka ketika kita menekan keyboard yang bernilai karakter pada textbox1, maka nilainya tidak akan dimasukan ke dalam textbox tersebut.

Dan untuk membuat textbox hanya dapat karakter saja, tinggal membalikan nilai dari e.handled saja. yang nilai pertama ganti true, dan yang kedua ganti jadi false.



Kalau Backspace bisa pake kode dibawah ini
Dim key As Integer = Char.ConvertToUtf32(e.KeyChar.ToString(), 0)
If Not (((key >= 48) And (key <= 57)) Or (key = 8)) Then
e.Handled = True
End If

1 komentar: