C Textbox’A Harf Girişini Engelleme

C TextBox’a Harf Girişini Engelleme

Giriş

TextBox kontrolleri, kullanıcıların metin girmesine izin veren yaygın bir kullanıcı arayüzü öğesidir. Ancak, belirli durumlarda, kullanıcıların TextBox’a harf girmesini engellemek gerekebilir. Örneğin, yalnızca sayısal girişlere izin verilmesi gereken bir alan veya yalnızca özel karakterlere izin verilmesi gereken bir alan olabilir.

Bu makale, C# ve Visual Basic .NET kullanarak TextBox’a harf girişini engellemenin çeşitli yollarını inceleyecektir.

Yöntem 1: KeyPress Olayını Kullanma

KeyPress olayı, bir TextBox’a bir tuşa basıldığında tetiklenir. Bu olayı, harf tuşlarına basıldığında girişin engellenmesi için kullanabiliriz.

C#

csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Harf tuşlarına basıldığında girişin engellenmesi
if (char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
}

Visual Basic .NET

visual basic .net
Private Sub textBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBox1.KeyPress
' Harf tuşlarına basıldığında girişin engellenmesi
If Char.IsLetter(e.KeyChar) Then
e.Handled = True
End If
End Sub

Yöntem 2: InputScope Özelliğini Kullanma

InputScope özelliği, bir TextBox’a izin verilen giriş türünü belirlemek için kullanılabilir. Harf girişini engellemek için InputScope’u “Number” olarak ayarlayabiliriz.

C#

csharp
textBox1.InputScope = new InputScope()
{
// Yalnızca sayısal girişlere izin ver
InputScopeNameValue = InputScopeNameValue.Number
};

Visual Basic .NET

visual basic .net
textBox1.InputScope = New InputScope()
{
' Yalnızca sayısal girişlere izin ver
InputScopeNameValue = InputScopeNameValue.Number
}

Yöntem 3: MaskedTextBox Kontrolünü Kullanma

MaskedTextBox kontrolü, kullanıcı girişini belirli bir maskeye göre kısıtlamak için tasarlanmıştır. Harf girişini engellemek için MaskedTextBox’ın Mask özelliğini “0” olarak ayarlayabiliriz.

C#

csharp
maskedTextBox1.Mask = "0";

Visual Basic .NET

visual basic .net
maskedTextBox1.Mask = "0"

Yöntem 4: Özel Bir Sınıf Kullanma

Özel bir sınıf, harf girişini engelleyen bir TextBox kontrolü oluşturmak için kullanılabilir. Bu sınıf, KeyPress olayını geçersiz kılabilir ve harf tuşlarına basıldığında girişin engellenmesi için özel mantık uygulayabilir.

C#

csharp
public class LetterRestrictingTextBox : TextBox
{
protected override void OnKeyPress(KeyPressEventArgs e)
{
// Harf tuşlarına basıldığında girişin engellenmesi
if (char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
else
{
base.OnKeyPress(e);
}
}
}

Visual Basic .NET

“`visual basic .net
Public Class LetterRestrictingTextBox
Inherits TextBox

Protected Overrides Sub OnKeyPress(e As KeyPressEventArgs)
    ' Harf tuşlarına basıldığında girişin engellenmesi
    If Char.IsLetter(e.KeyChar) Then
        e.Handled = True
    Else
        MyBase.OnKeyPress(e)
    End If
End Sub

End Class
“`

İlgili Kaynaklar


Yayımlandı