C Textbox Space Engelleme

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.


Yayımlandı