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;
}
}
}