C TextBox Boşluk Engelleme
Giriş
Bir C# uygulamasında, kullanıcıların boşluk girmesini engellemek için TextBox kontrollerini kullanmak yaygın bir gereksinimdir. Bu, kullanıcıların yalnızca sayısal değerler, e-posta adresleri veya diğer boşluk içermemesi gereken verileri girmesini sağlamak için gereklidir.
TextBox Boşluk Engelleme Yöntemleri
TextBox’larda boşluk engellemeyi uygulamak için birkaç yöntem vardır:
1. KeyPress Olayını Kullanma
KeyPress olayı, bir tuşa basıldığında tetiklenir. Bu olayı, boşluk tuşuna basıldığında boşluk girmeyi engellemek için kullanabilirsiniz:
c#
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Boşluk tuşuna basılırsa
if (e.KeyChar == ' ')
{
// Boşluk girmeyi engelle
e.Handled = true;
}
}
2. TextChanged Olayını Kullanma
TextChanged olayı, TextBox’ın metni değiştiğinde tetiklenir. Bu olayı, metinde boşluk varsa boşlukları kaldırmak için kullanabilirsiniz:
c#
private void textBox1_TextChanged(object sender, EventArgs e)
{
// Metinde boşluk varsa
if (textBox1.Text.Contains(" "))
{
// Boşlukları kaldır
textBox1.Text = textBox1.Text.Replace(" ", "");
}
}
3. Özel Bir Sınıf Kullanma
Boşluk engelleme mantığını kapsüllemek için özel bir sınıf oluşturabilirsiniz. Bu sınıf, TextBox’ın KeyPress veya TextChanged olaylarını işleyerek boşlukları engelleyebilir:
“`c#
public class SpaceBlockingTextBox : TextBox
{
public SpaceBlockingTextBox()
{
this.KeyPress += new KeyPressEventHandler(SpaceBlockingTextBox_KeyPress);
this.TextChanged += new EventHandler(SpaceBlockingTextBox_TextChanged);
}
private void SpaceBlockingTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ' ')
{
e.Handled = true;
}
}
private void SpaceBlockingTextBox_TextChanged(object sender, EventArgs e)
{
if (this.Text.Contains(" "))
{
this.Text = this.Text.Replace(" ", "");
}
}
}
“`
4. Düzenli İfadeler Kullanma
Düzenli ifadeler, metinle eşleşmek için kullanılabilir. Boşlukları engelleyen bir düzenli ifade kullanarak, TextBox’ın metnini doğrulayabilirsiniz:
“`c#
private void textBox1_Validating(object sender, CancelEventArgs e)
{
// Boşlukları engelleyen düzenli ifade
Regex regex = new Regex(“^[^ ]+$”);
// Metin düzenli ifadeyle eşleşmiyorsa
if (!regex.IsMatch(textBox1.Text))
{
// Hatalı giriş mesajı göster
e.Cancel = true;
textBox1.errorProvider1.SetError(textBox1, "Boşluklar girilemez.");
}
}
“`
İlgili Kaynaklar
- C# TextBox’ta Boşluk Engelleme
- C# TextBox’ta Boşlukları Kaldırma
- C# TextBox’ta Boşluk Engelleme Sınıfı