FilteredTextbox di Aplikasi Desktop
Sejak pertama kali belajar .NET, saya hanya fokus pada aplikasi web (ASP.net). Projek-projek yang saya kerjakan semuanya adalah aplikasi web. Sekitar satu minggu lalu, pertama kalinya saya menerima projek yang berbasis desktop. Sebenarnya pekerjaan ini ditujukan kepada teman saya, tapi karena suatu alasan, pekerjaan itu di oper ke saya, ‘Sekalian belajar’ begitu kata teman saya waktu itu, toh aplikasinya juga sederhana. Sederhana bagi teman saya, tapi susah buat saya yang belum pernah membuat aplikasi sebenarnya di desktop, apalagi tenggat waktunya cuman 1 minggu. Ada banyak ilmu baru yang saya dapatkan dari pekerjaan ini. Mungkin apa yang saya catat disini sepele buat teman-teman yang sudah expert di bidang ini. Tapi ini sangat berharga buat saya,dan sayang kalo harus dilupakan. Siapa tahu nanti diperlukan lagi.
Di ASP.net saya biasa menggunakan AJAX FilteredTextBox untuk memfilter data yang dimasukkan oleh user, apakah user hanya boleh memasukkan angka saja atau huruf saja. Tapi bagaimana dengan textbox di desktop, tentu AJAX tidak bisa digunakan disini. Setelah mendalami petuah-petuah dari teman saya dan juga simbah Google selama 2 hari (lama amat ya…otaknya masih Pentium 4??), filteredTextbox bisa dibuat dengan memanfaatkan event ‘KeyPress‘ dari textbox dan juga kode ASCII dari tombol yang ditekan.
Langsung saja lihat kodenya. Saya buat class dengan nama ‘FilteredTextbox’
Public Class FilteredTextbox Public Shared Function IntMode(ByVal e As KeyPressEventArgs) As Boolean Select Case Asc(e.KeyChar) Case 48 To 57, 8, 13 Return False Case Else Return True End Select End Function Public Shared Function DecimalMode(ByVal e As KeyPressEventArgs) As Boolean Select Case Asc(e.KeyChar) Case 48 To 57, 8, 13, 46, 44 Return False Case Else Return True End Select End Function Public Shared Function AlphaMode(ByVal e As KeyPressEventArgs) As Boolean Select Case Asc(e.KeyChar) Case 65 To 90, 97 To 122, 32, 8, 32, 13 Return False Case Else Return True End Select End Function End Class
Kode diatas akan menghasilkan nilai false untuk tombol yang benar dan true untuk tombol yang dilarang.
Untuk testing, buat windows form seperti gambar berikut
Tambahkan kode event ‘KeyPress‘ di masing-masing textbox untuk memanggil class diatas.
Public Class Form1 Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) _ Handles TextBox1.KeyPress e.Handled = FilteredTextbox.IntMode(e) End Sub Private Sub TextBox2_KeyPress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) _ Handles TextBox2.KeyPress e.Handled = FilteredTextbox.DecimalMode(e) End Sub Private Sub TextBox3_KeyPress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) _ Handles TextBox3.KeyPress e.Handled = FilteredTextbox.AlphaMode(e) End Sub End Class
Dengan event ‘KeyPress’ dan kode ASCII, bisa diterapkan untuk membuat filter yang lain. Misalnya hanya huruf besar saja yang boleh, atau huruf kecil saja atau yang lainnya. Untuk kode ASCII selengkapnya bisa di lihat disini.
Semoga bermanfaat. Thanks buat mas BW atau petuah-petuahnya.
Posted on 1 Februari 2011, in .NET, Desktop and tagged Filter, TextBox, VB.net. Bookmark the permalink. Tinggalkan komentar.
Tinggalkan komentar
Comments 0