Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

C# TextBox Kullanımı ve Özellikleri

Bu yazımda C#’ta textbox kontrolünü inceleyeceğiz.Textbox,kullanıcıdan veri almamızı ya da sisteme dışardan değer girmemizi sağlayan kontroldür.
Bazı Özellikleri
textBox1.Text = “Gençay”; = Bu özellik sayesinde textboxa Gençay yazdırılır.
textBox1.BackColor = Color.Red; =Arkaplan rengini kırmızı yapar.
textBox1.ForeColor = Color.Yellow; = Yazı rengini sarı yapar.
textBox1.TextAlign = HorizontalAlignment.Right; =Bu özelliği sayesinde yazıyı sağa yada sola yaslayabiliriz.
textBox1.Visible = false; = Visible özelliği kontrollerde standarttır.True ise kontrol gözükecek,false ise gözükmeyecektir.
textBox1.Enabled = false; =Visible özelliği gibi Enabled özelliğide standarttır.True ise aktif,false ise pasif olacaktır.
Bazı Olayları
Click olayı = Textbox’a tıklandığında bu olay gerçekleşecektir.
DoubleClick olayı = Textbox’a çift tıklandığında bu olay gerçekleşecektir.
TextChanged olayı = Textbox’un Text özelliği her değiştiğinde bu olay gerçekleşir.Başka bir deyişle textboxa yazı yazarken her tuşa bastığımızda bu oaly gerçekleşir.


KeyDown olayı = Bu olayın ayrıntılı anlatmak istiyorum.
Bilgisayarda genel olarak “CTRL+C” tuş kombinasyonu kopyalamaya,”CTRL+V” ise yapıştırmaya ya da kullandığımız programa göre “A+B” kombinasyonuda filanca işleve yarıyor.Yazdığımız programda da biz klavyeden bastığımız tuşlarla komut çalıştırmak istiyorsak bu olayı kullanıyoruz.Bir nevi TextBox ta her tuşa basışımızda bu olay işlenir ama biz işlev vermediğimiz için bize sonuç vermez.
Şimdi bu olayı kullanmayı görelim.KeyDown scopları arasında mesaj kutusuyla bişey yazdıralım.Bakalım bir tuşa bastığımızda bu kodlar işlenecek mi?Asıl mevzu olan istediğimiz tuşları ayarlamayı makalenin devamında öğreneceksiniz;

private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            MessageBox.Show("Test");
        }

Yukarıda ki gibi kullanım yaparsak,textboxta her tuşa bastığımızda mesaj kutusunda “Text” yazısını göreceğiz.Bu şekilde TextChanged özelliğinden bir farkı yok gibi gözüküyor.Ama şimdi asıl mevzuya girelim.Şimdi şöyle olsun,ben textboxa ne girersem gireyim,ama a tuşuna basarsam yazdıklarımızı sildirelim.

  private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode==Keys.A)
            {
                textBox1.Text = "";
            }
        }

Öncelikle yukarıda ki ifadede kullandığımız komutlar ne işe yarar onları verelim.
e=Hangi tuşa bastığımızın bilgisi,KeyEventArgs tipinden tanımlı olan e parametresinden gelir.Buradan öğrenilebilir.
KeyCode=Klavyedeki bütün tuşlara ulaşmamızı sağlayan komuttur.
Keys=Klavyedeki tuşları bu komut sayesinde seçebiliyoruz.
Şimdi ise işin mantık kısmına bakalım;
Eğer klavyeden “A”(textbox’a yazılanın büyük küçük olması fark etmez) tuşuna basmışsak,textboxun içini boşalt.Basmamışsak bişey yapma.(else kullanmaya gerek yok)

Şimdi örnekleri birazdaha çoğaltıp,ikili kombinasyon yapalım.Yani textboxta “CTRL+4” kombinasyonuna basınca bize karşılık olarak mesaj kusunda bişey desin.

if (e.Control && e.KeyCode==Keys.B)
                {
                    MessageBox.Show("Test");
                }

Yukarıdaki ifadede “KeyCode” komutunu kullanmadan direkt olarak “e.Control”(Control=CTRL) yazmamızın sebebi,derleyicide yazarken e parametresiyle direkt olarak kullanabileceğimiz harfleri bize sunduğunu göreceksiniz.Eğer orda olmayan harfleri kullanmak istiyorsak “KeyCode” komutu işimizi kolaylaştıracaktır.Mantığına gelirsek eğer, eğer “CTRL” tuşuna ve “B” tuşuna basılmış ise yani ikiside aynı zamanlarda basılı ise,metin kutusunda “Test” yazdır.Ha eğer bu şart geçersizse bişey yapma.(yani if dışına kod yazmadığımıza göre yapacak bişey yok.) 🙂


Bazı Metodları
textBox1.Clear(); = Textbox’un içindeki herşeyi siler.
textBox1.Focus(); = İmleci textbox’a çakar.
textBox1.SelectAll(); = TextBox’taki bütün yazıları seçer.Tabi bu metodun işlevsel olması için Focus() metoduyla kullanılması gerekiyor.
Replace()=Bu metod sayesinde istediğimiz harf ve kelimeleri değiştirmemize yarar.İki parametreden oluşmaktadır.

textBox1.Text.Replace("String değişmesi istenen harf ya da kelime", "String değiştirilenin yerine yazılması istenen harf ya da kelime.");

Insert()=Bu metod sayesinde textbox’ın istediğimiz indexine göre yazı ekleyebiliriz.İki parametreden oluşmaktadır.

string a = textBox1.Text.Insert(İndex numarası,"String değerimiz") ;

Ek olarak ;
textBox1.Text = string.Empty; komutu textBox1.Text = “”; komutuyla aynı işlevi görmektedir.Yani ikiside textboxun içini boşaltmaktadır.
Artık yazının bu kısmına geldiyseniz,textbox kontrolünde genel anlamda bilgi sahibisiniz.Burada yazımı sonlandırıyorum.Saygılarımla…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

45 Cevaplar

  1. Kemal dedi ki:

    textbox1.Focus(); olayını biraz açar mısınız?

    • Gencay dedi ki:

      textbox1.Focus(); derseniz eğer, imlec textbox1 de aktif olur.Şöyle anlatayım;
      Formumuzda textboxa,textboxb adında iki TextBox nesnesi ve button1 adındada bir Button nesnesi bulunsun.Ben textboxb ye fareyle tıklayıp imleci textboxb de aktifleştireyim.button1 in Click olayına gelip textboxa.Focus(); kodunu yazarsam eğer,button1 e tıklandığı anda imlec textboxb den textboxa ya geçecektir.

  2. emin dedi ki:

    selam ben textboxa yazilan yazinin mesela 888-88-88 olmasin istorum yani aralarda hatlari koymak istiorum

  3. melek dedi ki:

    textBox da 12345 yazdık mesela clear la hepsini silmek yerine sırayla teker teker önce 5 i sonra 4 ü silmek istiyorum o işlemi yapmam için nasıl kod kullanabilirim?

    • Gençay dedi ki:

      İstediğin gibi karakterleri teker teker sondan başa doğru silmek istiyorsan eğer aşağıdaki komutla işlevini görebilirsin.Aşağıdaki algoritmada butona her tıkladığında en sondaki karakter silinecektir.

              private void button1_Click(object sender, EventArgs e)
              {
                  textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
              }
      

      Ya da sondan başa doğru döngüylede aşağıdaki gibi silme işlemi gerçekleştirebilirsin.

              private void button1_Click(object sender, EventArgs e)
              {
                  for (int i = textBox1.Text.Length - 1; i > 0; i--)
                  {
                      textBox1.Text = textBox1.Text.Remove(i);
                  }
              }
      
  4. Fales dedi ki:

    Progrmımda .doc uzantılı verileri textbox aktariyorum bu zaman dosya büyük oldugundan epey yer alıyor daha sonra textbox söz aramak istiyorum ki ancak girilen sözü textboxda neresinde olursam oluyum aynı aranan sözcügün üzerine getirsin böyle metod mevcutmy yoksa algoritma yazmakla olabilir

  5. MEDİNE dedi ki:

    textBox ta yazan değeri buttona bastıkça azaltmak istiyorum.ACİL LÜTFEN…

  6. a dedi ki:

    Merhaba ben buttona tıklandığında textboxteki değerin autocompletemode a eklenmesini istiyorum bunun için ne yapabilirim acaba ? iyi günler

  7. Murat dedi ki:

    Merhabalar texbox a label de görünen kelimeyi girdikden sonra texbox ın silinip labe le sıradaki kelimenin gelmesini nasıl sağlarız.

  8. murat dedi ki:

    merhaba arkadaslar market otomosyonu yapıyorum karsılaştım hata sudur yardımlarınızı bekliyorum

    3 adet text var
    txttoplam
    txtverilenpara
    txtparaustu

    kullandıgım kod budur

    private void TxtVerilenPara_TextChanged(object sender, EventArgs e)
    {
    int sayi1, sayi2, sonuc;
    sayi1 = int.Parse(TxtToplam.Text);
    sayi2 = int.Parse(TxtVerilenPara.Text);
    sonuc = sayi2 – sayi1;
    TxtParaustu.Text = sonuc.ToString();
    }

    verilen paraya kodnumu yazıyorum para miktarını yazıyorum toplam borcu yazıyorum verilen paradan toplam tutar cıkarılıp para ustune atayacak ama verilen para texti bos kaldıgında hata veriyor ne yapmam lazım

  9. atalay dedi ki:

    sa texbox un ıcıne gırılen formuler ıslem yaparak sonuc texbox sonucu yazdıracak bunu nasıl yapabılırım yardımıcı olurmusunuz

  10. mehmet vural dedi ki:

    merhaba arkadaşlar ben şifreleme ile ilgili bir program yapıyorum. takıldığım yani yapamadığım bir yer var yardımcı olursanız sevinirim şimdi den teşekkür ederim.
    textBox7.Text binary kodları var bunlar otomatik geliyor, (örnek 1001000 toplam 7 tane rakam var)
    buna göre textBox8.Text dışardan 7 boşluk olacak şekilde bir metin giriliyor (örnek “bu gün günlerden cuma ise yarın günlerden cumartesidir”)

    textBox7.Text deki ilk sayı 1 ise textBox8.Text ilk boşlukta(bu gün) arasına – gelsin bu işlemi textBox9.Text yapsın
    textBox7.Text deki 2. sayı 0 ise textBox8.Text 2.boşlukta(gün günlerden) arasına + gelsin bu işlemi textBox9.Text yapsın
    ….
    …..
    …..
    textBox7.Text deki 7. sayı 0 ise textBox8.Text 2.boşlukta(gün günlerden) arasına + gelsin bu işlemi textBox9.Text yapsın

    iletişim: mehmetvural0509@hotmail.com

  11. Abdullah dedi ki:

    Multitextbox ta

    AAAAA
    BBBBB
    CCCCC
    DDDDD

    şeklinde veri giriyorum. Benim istediğim sırayla tek tek bunları veritabanına kaydetsin.

  12. haydar dedi ki:

    texbox,label vb. araçların name kısımları neden değiştiririz yazarmısınz ?

    • Gençay dedi ki:

      TextBox, Label vs. gibi nesnelere kod kısmında name özelliğindeki verdiğimiz isim üzerinden erişmekteyiz. Ee haliyle bu nesnelere kod kısmından erişirken hangi name’in hangi nesneye ait olduğunu bilebilmek için ve istediğimiz nesneye direkt erişebilmek için nesnelerin name özelliklerini otomatik atanan isimden ziyade kendimiz istediğimiz isimle değiştiririz.

  13. gurcu87 dedi ki:

    selam butona tiklayinca textbox icindeki yaziya ekleme nasil yapabiliriz??
    örnegin;
    text1 de => chrome yaziyor.
    buton1 e tiklandiginda, text1 de “chrome.exe” nasil yazdirabilirim??

    • Gençay dedi ki:

      Merhaba,
      Butonun Click olayını aşağıdaki gibi doldurursan istediğini gerçekleştirmiş olursun. (Click olayı için butonun üzerine çift tıklaman yeterlidir.)

              private void button1_Click(object sender, EventArgs e)
              {
                  textBox1.Text = "chrome.exe";
              }
      
  14. aa dedi ki:

    guzel

  15. Ahmetcan dedi ki:

    texboxa bir şey yazmasını istemiyorum o kod nedir yardımcı olurmusun ?

  16. A dedi ki:

    Merhaba. Textbox’a giril yapıp ardından butona basınca aynı textbox’ın deaktif olmasını istiyorum. Önceden girilen metin kalacak ama textbox’a yeni giriş yapılamayacak.
    Teşekkürler.

  17. Zehra dedi ki:

    5 adet input girişi ve bir buton olacak. 4 input değer, 1 input formül şeklinde. Değerleri ve formülü kullanıcı girecek. Formül için belirli kurallarımız var, bunlara uyulmadığı sürece hata mesajı gösterilecek. Gereken değerler girildikten sonra butona tıklanacak ve sonuç ekranda görülecek yapmayı istiyorum yardımcı olur musunuz

  18. erkan yıldırım dedi ki:

    Merhaba ;
    ben textbox ın içine sadece rakam ve virgül yazdırmak istiyorum. yani 2,36 gibi virgül ve rakam tuşalrı haricinde giriş izni vermesin.

  19. Musfik dedi ki:

    Merhaba. Bir sorum olacak. Textbox-a tab ile geldiyimiz zaman textbox-un icindeki önceden yazmis olduqum 0(sifir)-rakamini silib-yeniden tab ile diger textboxa gecdiyim zaman bir onceki textbox-a deqer yazmadiqim ucun yene 0-(sifir) rakami yazilsin.

    yaedım eedersiniz sevinirim…Tesekkurler

  20. Efnan dedi ki:

    Merhaba;
    Bir sorum olacak. Tek texboxa (x,y) şeklinde iki ayrı değer girilebilir mi? Bu girilen değerler ayrı şekilde okunabilir mi?

  21. MAlexyx dedi ki:

    Merhaba bir proje üzerinde çalışıyorum. Bir noktada sorunum var yardımcı olurmusunuz?

    Aşağıdaki kodda set_temp değerini textboxa yazdırmak istiyorum.Fakat bir türlü başaramıyorum.Hatta Bu fonksiyon içinde basit bir şekilde textboxa deneme dahi yazdıramıyorum sorun nedir?

            public void Event(string address, string state)
            {
                decimal temp = (decimal)_connection.FromDataPoint("9.001", state);
                if (address == "5/0/7")
                {
                    decimal set_temp = (decimal)_connection.FromDataPoint("9.001", state);
                    MessageBox.Show("Güncellenen Durum" + address + "   " + set_temp);
                    textBox1.Text = "Deneme";
    
                    return;
    
                }
                if (address == "5/0/0")
                {
                    decimal current_temp = (decimal)_connection.FromDataPoint("9.001", state);
                    MessageBox.Show("Güncellenen Durum" + address + "   " + current_temp);
                    return;
                }
            }
    
    • Gençay dedi ki:

      Merhaba,

      Sadece yapmanız gereken;

      textBox1.Text = set_temp.ToString();
      

      Kolay gelsin…

      • MAlexyx dedi ki:

        Evet ama ilginç olanda bu işlemi o fonksiyonun içinde yapmıyor.

        BU İŞLEMİ BİLE YAPTIRAMADIM.

        textBox1.Text = “Deneme”;

  22. Hasan dedi ki:
            private void pictureBox5_Click(object sender, EventArgs e)
            {
                Random rst = new Random();
                int sayi1, sayi2, sayi3;
                int harfdegeri;
                sayi1 = rst.Next(1, 9);
                sayi2 = rst.Next(0, 9);
                sayi3 = rst.Next(0, 9);
                harfdegeri = rst.Next(65, 91);//ASCII kod tablosu
                char karakter;
                karakter = Convert.ToChar(harfdegeri);
                txtMusteriKodu.Text = sayi1.ToString() + sayi2.ToString()
                    + karakter + sayi3.ToString();
            }
    

    Merhaba, ben bir otomasyon yazıyorum otomatik harf ve rakam karışık bir kod üretmesini istiyorum. bu kod parçacığını webde buldum yalnız bu algoritma tahmin edilebilir ben biraz daha özgün bir şey arıyorum reCAPTCHA gibi önerinizi örneğiyle birlikte yazar mısınız? Teşekkürler

    • Gençay dedi ki:

      Merhaba,

      reCAPTCHA gibi olmasa da aşağıdaki gibi daha kompleks değerler üreten basit algoritmayı kullanabilirsiniz :

          public string CreateRandomValue()
          {
              byte[] number = new byte[32];
              using (RandomNumberGenerator random = RandomNumberGenerator.Create())
              {
                  random.GetBytes(number);
                  return Convert.ToBase64String(number);
              }
          }
      

      Sevgiler…

  23. Emre TEKİN dedi ki:

    Merhaba,
    İki tane textbox kutum var. Birisinde sicil diğerinde ad soyad çıkacak.
    1.textboxa sicili girdiğimde 1.textboxa ad soyad otomatik nasıl çıkabilir.

    • Emre TEKİN dedi ki:

      1.textboxa sicil girince 2.textboxa otomatik ad soyad gelsin istiyorum. şimdiden teşekkürler

  24. jin-woo dedi ki:

    abi textboxa yazdığımız sayı kadar nasıl textbox ekleyebiliriz

  25. bekir dedi ki:

    textbox ın içindeki yazıyı mesela a yazınca bir mesajın gelmesini istiyorum bunu nnsl yapabilirim?

  26. akif dedi ki:

    merhabalar ben textbox’ın içi boş iken buttona bastığım zaman altında kırmızı yazıyla “Lütfen değer giriniz” yazmasını istiyorum fakat bir türlü yapamadım

Gençay için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir