C Textbox Boşluk Engelleme

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


Yayımlandı