C Textbox Kılavyeden Griş Engelleme

C# TextBox’ta Klavye Girişini Engelleme

Bir C# uygulamasında, kullanıcıların belirli bir TextBox kontrolüne klavye girişi yapmasını engellemek isteyebileceğiniz durumlar olabilir. Bu, yalnızca sayısal girişlere izin vermek, özel karakterleri kısıtlamak veya kullanıcıların metin alanını düzenlemesini önlemek gibi çeşitli nedenlerle yapılabilir.

Bu makalede, C# TextBox’ta klavye girişini engellemenin farklı yollarını inceleyeceğiz.

1. ReadOnly Özelliğini Kullanma

En basit yöntem, TextBox’ın ReadOnly özelliğini true olarak ayarlamaktır. Bu, kullanıcıların metin alanına herhangi bir metin girmesini engelleyecektir.

csharp
textBox1.ReadOnly = true;

2. KeyPress Olayını İşleme

TextBox’ın KeyPress olayını işleyerek, kullanıcıların girmeye çalıştığı tuşları kontrol edebilirsiniz. Bu olay, bir tuşa basıldığında tetiklenir ve KeyPressEventArgs parametresi, basılan tuş hakkında bilgi sağlar.

csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Sayısal olmayan tuşlara izin verme
if (!char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}

3. InputScope Özelliğini Kullanma

InputScope özelliği, TextBox’a izin verilen giriş türlerini belirtmenize olanak tanır. Örneğin, yalnızca sayısal girişlere izin vermek için Number değerini ayarlayabilirsiniz.

csharp
textBox1.InputScope = new InputScope()
{
Names = { InputScopeName.Number }
};

4. MaskedTextBox Kontrolünü Kullanma

MaskedTextBox kontrolü, kullanıcı girişini belirli bir formata göre kısıtlamak için özel olarak tasarlanmıştır. Örneğin, telefon numarası veya tarih gibi yapılandırılmış veriler için kullanılabilir.

csharp
MaskedTextBox maskedTextBox1 = new MaskedTextBox();
maskedTextBox1.Mask = "(999) 000-0000";

5. Özel Bir TextBox Sınıfı Oluşturma

Yukarıdaki yöntemlerin yanı sıra, klavye girişini engellemek için özel bir TextBox sınıfı da oluşturabilirsiniz. Bu sınıf, KeyPress olayını geçersiz kılabilir ve kullanıcının girmeye çalıştığı tuşları kontrol edebilir.

csharp
public class CustomTextBox : TextBox
{
protected override void OnKeyPress(KeyPressEventArgs e)
{
// Sayısal olmayan tuşlara izin verme
if (!char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
}

İlgili Kaynaklar


Yayımlandı