Textbox Karakter Engelleme Vb.net

.NET’te Metin Kutusu Karakter Engelleme

Metin kutuları, kullanıcıların metin girmesine olanak tanıyan yaygın bir kullanıcı arayüzü öğesidir. Ancak, belirli karakterlerin veya karakter kümelerinin metin kutusuna girilmesini engellemek bazen gerekli olabilir. Bu, aşağıdakiler gibi çeşitli nedenlerle yapılabilir:

  • Veri Doğrulama: Belirli bir formatta veri girmeyi zorunlu kılmak (ör. yalnızca sayılar veya e-posta adresleri).
  • Güvenlik: Kötü amaçlı kod veya komut dosyası enjeksiyonunu önlemek.
  • Kullanıcı Deneyimi: Kullanıcıların hatalı veya geçersiz girişler yapmasını önlemek.

.NET’te metin kutusu karakter engelleme, aşağıdaki yöntemlerden biri kullanılarak uygulanabilir:

1. KeyPress Olayı

KeyPress olayı, bir tuşa basıldığında tetiklenir ve karakterin metin kutusuna girilmesini engellemek için kullanılabilir. Aşağıdaki kod örneği, yalnızca sayıların metin kutusuna girilmesine izin verir:

vb.net
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
If Not Char.IsDigit(e.KeyChar) Then
e.Handled = True
End If
End Sub

2. InputMask Özelliği

InputMask özelliği, metin kutusuna girilebilecek karakterleri tanımlamak için kullanılabilir. Aşağıdaki kod örneği, yalnızca sayıların ve ondalık noktanın metin kutusuna girilmesine izin verir:

vb.net
TextBox1.InputMask = "9999999999.99"

3. Regular Expressions

Düzenli ifadeler, metin kutusu girişini doğrulamak ve belirli karakterleri engellemek için kullanılabilir. Aşağıdaki kod örneği, yalnızca e-posta adreslerinin metin kutusuna girilmesine izin verir:

vb.net
Private Sub TextBox1_Validating(sender As Object, e As CancelEventArgs) Handles TextBox1.Validating
If Not Regex.IsMatch(TextBox1.Text, "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$") Then
e.Cancel = True
MessageBox.Show("Geçerli bir e-posta adresi girin.")
End If
End Sub

4. Özel Sınıflar

Özel sınıflar, metin kutusu karakter engelleme mantığını kapsüllemek için kullanılabilir. Aşağıdaki kod örneği, yalnızca sayıların metin kutusuna girilmesine izin veren özel bir sınıf göstermektedir:

“`vb.net
Public Class NumberTextBox
Inherits TextBox

Protected Overrides Sub OnKeyPress(e As KeyPressEventArgs)
    If Not Char.IsDigit(e.KeyChar) Then
        e.Handled = True
    End If
End Sub

End Class
“`

Faydalı Siteler ve Dosyalar


Yayımlandı