15 May 2015

VB.NET: Membatasi Input Textbox Alphanumeric


Klo sebelumnya Rani pernah membahas tentang bagaimana membuat input textbox berupa angka saja (numeric only) nah sekarang bagaimana kalau input textbox hanya berupa angka, alphabet (huruf) dan spasi aja yang diperbolehkan? Atow bahasa keren nya Alphanumeric only.

Mari kita lihat sample berikut, untuk UI cukup form berisi textbox aja.


Code
Public Class Form1

    Private Sub TextBox1_KeyPress(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyPressEventArgs) _
        Handles TextBox1.KeyPress
        If Char.IsLetterOrDigit(e.KeyChar) = False Then
            If e.KeyChar = CChar(ChrW(Keys.Back)) Or _
               e.KeyChar = CChar(ChrW(Keys.Space)) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
        End If
    End Sub


    Private Function StripNonAlphaNum(ByRef sText As String) As String
        Dim strRegex As String = "[^a-zA-Z0-9 -]"
        Dim rgx As New System.Text.RegularExpressions.Regex(strRegex)
        Return rgx.Replace(sText, "")
    End Function

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        TextBox1.Text = StripNonAlphaNum(TextBox1.Text)
    End Sub

End Class


Rani menambahkan code handler pada event _TextChanged karena ada kemungkinan user selain mengetikan langsung input ke textbox juga dapat melakukan copy paste. Karena itu fungsi StripNonAlphaNum digunakan untuk menggantikan karakter selain alphanumeric (dan spasi) dengan string kosong alias menghapus nya.

Jika kita run program ini, maka kita hanya bisa mengetik huruf, angka, dan spasi saja.

Contoh lainya jika kita meng-copy paste You & Me @home ke textbox maka tampilan yang akan dihasilkan sebagai berikut:

Selamat mencoba semoga bermanfaat.

Click here if you like this article.


0 comments: