Ddo1.com WebMaster & Kodlama Forumu

Tam Versiyon: C# TextBox'a Sadece Harf, Sayı, Özel Karakter Girme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
C# programında bir TextBox kontrolüne sadece belirli türde karakterleri (harf, sayı, özel karakterler) girmeyi sağlamak için KeyPress veya TextChanged etkinliklerini kullanabilirsiniz. Aşağıda, sadece harfleri, sayıları ve özel karakterleri kabul eden bir TextBox kontrolünü sınırlayan bir örnek bulunmaktadır.

Kod:
using System;
using System.Linq;
using System.Windows.Forms;

namespace HarfSayiOzelKarakterTextBox
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
           
            // TextBox'a KeyPress etkinliği ekleniyor
            textBox1.KeyPress += TextBox1_KeyPress;
        }

        private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // Sadece harfler, sayılar ve belirli özel karakterleri kabul etmek için kontrol
            if (!char.IsLetterOrDigit(e.KeyChar) && !IsAllowedSpecialCharacter(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true; // Geçersiz karakteri engelle
            }
        }

        private bool IsAllowedSpecialCharacter(char character)
        {
            // İzin verilen özel karakterleri belirleyin
            char[] allowedSpecialCharacters = { '@', '#', '$', '%' }; // Örneğin: '@', '#', '$', '%' gibi özel karakterlere izin verilmiştir.

            // Belirli bir özel karakter izin verilenler listesinde mi kontrol et
            return allowedSpecialCharacters.Contains(character);
        }
    }
}


Bu örnekte, TextBox1_KeyPress metodunda KeyPress etkinliği kullanılarak, girilen her karakter için bir kontrol yapılır. IsLetterOrDigit metodu ile karakterin harf veya sayı olup olmadığı kontrol edilir. IsAllowedSpecialCharacter metodu ile ise özel karakterin izin verilen özel karakterler listesinde olup olmadığı kontrol edilir. Eğer karakter uygun değilse, e.Handled = true; ifadesi ile karakterin işlenmiş olduğunu ve görüntülenmeyeceğini belirtiyoruz. Bu şekilde, TextBox kontrolü sadece belirli türde karakterleri kabul eder.