C TextBox’ta Boşluk Engelleme
Giriş
TextBox kontrolleri, kullanıcıların metin girmesine olanak tanıyan yaygın bir kullanıcı arayüzü öğesidir. Ancak, belirli durumlarda, kullanıcıların metin alanına boşluk girmesini engellemek gerekebilir. Bu, yalnızca sayısal girişlere izin verilmesi gereken alanlar veya boşlukların veri bütünlüğünü bozabileceği alanlar gibi durumlarda faydalı olabilir.
Bu makale, C# dilinde TextBox kontrollerinde boşluk engellemenin çeşitli yöntemlerini inceleyecektir.
Yöntem 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 karakterinin girişini engellemek için kullanabiliriz.
c#
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Boşluk tuşuna basılırsa
if (e.KeyChar == ' ')
{
// Boşluk karakterinin girişini engelle
e.Handled = true;
}
}
Yöntem 2: TextChanged Olayını Kullanma
TextChanged olayı, TextBox’ın metni değiştiğinde tetiklenir. Bu olayı, metinde boşluk olup olmadığını kontrol etmek ve varsa kaldırmak için kullanabiliriz.
c#
private void textBox1_TextChanged(object sender, EventArgs e)
{
// Metinde boşluk olup olmadığını kontrol et
if (textBox1.Text.Contains(" "))
{
// Boşlukları metinden kaldır
textBox1.Text = textBox1.Text.Replace(" ", "");
}
}
Yöntem 3: Özel Bir Sınıf Kullanma
Özel bir sınıf oluşturarak TextBox’ın davranışını özelleştirebiliriz. Bu sınıf, boşluk tuşuna basıldığında veya metin değiştiğinde boşlukları otomatik olarak kaldıracaktır.
“`c#
public class SpaceBlockingTextBox : TextBox
{
public SpaceBlockingTextBox()
{
// KeyPress olayını işleyicimize bağla
this.KeyPress += new KeyPressEventHandler(SpaceBlockingTextBox_KeyPress);
// TextChanged olayını işleyicimize bağla
this.TextChanged += new EventHandler(SpaceBlockingTextBox_TextChanged);
}
private void SpaceBlockingTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
// Boşluk tuşuna basılırsa
if (e.KeyChar == ' ')
{
// Boşluk karakterinin girişini engelle
e.Handled = true;
}
}
private void SpaceBlockingTextBox_TextChanged(object sender, EventArgs e)
{
// Metinde boşluk olup olmadığını kontrol et
if (this.Text.Contains(" "))
{
// Boşlukları metinden kaldır
this.Text = this.Text.Replace(" ", "");
}
}
}
“`
Yöntem 4: Düzenli İfadeler Kullanma
Düzenli ifadeler, metinle eşleşen kalıpları tanımlamak için kullanılabilir. Boşlukları metinden kaldırmak için bir düzenli ifade kullanabiliriz.
“`c#
private void textBox1_TextChanged(object sender, EventArgs e)
{
// Boşlukları kaldıran düzenli ifade
string pattern = “[ ]”;
// Düzenli ifadeyi metne uygula
textBox1.Text = Regex.Replace(textBox1.Text, pattern, "");
}
“`
Faydalı Siteler ve Dosyalar
Sonuç
C# TextBox kontrollerinde boşluk engellemek, çeşitli yöntemler kullanılarak yapılabilir. Bu yöntemler, KeyPress olayını, TextChanged olayını, özel bir sınıfı veya düzenli ifadeleri kullanmayı içerir. Uygun yöntem, belirli uygulama gereksinimlerine bağlı olacaktır.