C# TextBox’ta Harf Girişini Engelleme
Giriş
TextBox kontrolleri, kullanıcıların metin girmesine izin veren yaygın bir kullanıcı arayüzü öğesidir. Bazı durumlarda, yalnızca sayısal girişlere izin vermek ve harf girişini engellemek gerekebilir. Bu makale, C# kullanarak TextBox’ta harf girişini engellemenin çeşitli yollarını inceleyecektir.
1. KeyPress Olayını Kullanma
KeyPress olayı, bir tuşa basıldığında tetiklenir. Bu olayı, harf tuşlarına basıldığında girişin engellenmesi için kullanabiliriz. Aşağıdaki kod örneği, KeyPress olayını kullanarak harf girişini engeller:
c#
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;
}
}
2. InputScope Özelliğini Kullanma
InputScope özelliği, bir TextBox’ın kabul edebileceği giriş türünü belirler. Harf girişini engellemek için InputScope.Number özelliğini kullanabiliriz. Aşağıdaki kod örneği, InputScope özelliğini kullanarak harf girişini engeller:
c#
textBox1.InputScope = new InputScope()
{
// Yalnızca sayısal girişlere izin ver
InputScopeNameValue = InputScopeNameValue.Number
};
3. MaskedTextBox Kontrolünü Kullanma
MaskedTextBox kontrolü, kullanıcı girişini belirli bir formata göre kısıtlamak için tasarlanmıştır. Harf girişini engellemek için MaskedTextBox kontrolünün Mask özelliğini kullanabiliriz. Aşağıdaki kod örneği, MaskedTextBox kontrolünü kullanarak harf girişini engeller:
c#
maskedTextBox1.Mask = "0000000000";
4. Özel Bir Sınıf Oluşturma
Özel bir sınıf oluşturarak ve bu sınıfı TextBox’ın BaseType özelliğine atayarak harf girişini engelleyebiliriz. Özel sınıf, KeyPress olayını geçersiz kılabilir ve harf tuşlarına basıldığında girişin engellenmesi için kod içerebilir. Aşağıdaki kod örneği, harf girişini engellemek için özel bir sınıf oluşturur:
“`c#
public class NumberOnlyTextBox : TextBox
{
public NumberOnlyTextBox()
{
// KeyPress olayını geçersiz kıl
this.KeyPress += new KeyPressEventHandler(NumberOnlyTextBox_KeyPress);
}
private void NumberOnlyTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
// Harf tuşlarına basıldığında girişin engellenmesi
if (char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
}
}
“`
5. Üçüncü Taraf Kütüphaneleri Kullanma
Harf girişini engellemek için çeşitli üçüncü taraf kütüphaneler de mevcuttur. Bu kütüphaneler, yukarıda açıklanan yöntemlere ek özellikler ve işlevler sağlayabilir. Örneğin, InputValidation kütüphanesi, TextBox’larda harf girişini engellemek için özel bir doğrulama özelliği sağlar.
Faydalı Kaynaklar
- TextBox.KeyPress Olayı
- TextBox.InputScope Özelliği
- MaskedTextBox Kontrolü
- InputValidation Kütüphanesi