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…
textbox1.Focus(); olayını biraz açar mısınız?
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.
selam ben textboxa yazilan yazinin mesela 888-88-88 olmasin istorum yani aralarda hatlari koymak istiorum
A.Selam
İstemek yapmanın yarısıdır, öbür yarısınıda yaparsanız iş tamam 🙂
masktexbox kullanarak yapabilirsin.
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?
İ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.
Ya da sondan başa doğru döngüylede aşağıdaki gibi silme işlemi gerçekleştirebilirsin.
Hocam çok teşekkür ederim . Hesap makinem için çok yardımcı oldunuz.
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
Böyle metod mevcut değil lakin algoritma yazarak istediğiniz işi görebilirsiniz.
textBox ta yazan değeri buttona bastıkça azaltmak istiyorum.ACİL LÜTFEN…
Merhaba Medine,
İsteğini daha teferruatlı yazarsan yardımcı olabilirim…
direk buraya yaziyorum kopyalayip atmayin Visual Studioya. Boyle olacaq
{
textBox1.Text= textBox1.Text.Substring(0,textBox1.Text.Length-1);
}
Merhaba ben buttona tıklandığında textboxteki değerin autocompletemode a eklenmesini istiyorum bunun için ne yapabilirim acaba ? iyi günler
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.
Merhaba,
Aşağıdaki gibi yazarsanız işleminiz gerçekleşecektir.
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
try cacth kontrolünü kullanabilirsin.
nasıl yapmam gerekiyor acaba biraz daha açıklayıcı olabilirse artık çeşitli hatalrla uğraşmaktan bildiklerimide karıştırdım 😀 beyin ERROR =)
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
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
Multitextbox ta
AAAAA
BBBBB
CCCCC
DDDDD
şeklinde veri giriyorum. Benim istediğim sırayla tek tek bunları veritabanına kaydetsin.
texbox,label vb. araçların name kısımları neden değiştiririz yazarmısınz ?
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.
selam butona tiklayinca textbox icindeki yaziya ekleme nasil yapabiliriz??
örnegin;
text1 de => chrome yaziyor.
buton1 e tiklandiginda, text1 de “chrome.exe” nasil yazdirabilirim??
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.)
guzel
texboxa bir şey yazmasını istemiyorum o kod nedir yardımcı olurmusun ?
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.
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
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.
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
Merhaba;
Bir sorum olacak. Tek texboxa (x,y) şeklinde iki ayrı değer girilebilir mi? Bu girilen değerler ayrı şekilde okunabilir mi?
Hayır, TextBox.Text bir property olduğu için string türünde tek bir değer atanabilir.
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?
Merhaba,
Sadece yapmanız gereken;
Kolay gelsin…
Evet ama ilginç olanda bu işlemi o fonksiyonun içinde yapmıyor.
BU İŞLEMİ BİLE YAPTIRAMADIM.
textBox1.Text = “Deneme”;
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
Merhaba,
reCAPTCHA gibi olmasa da aşağıdaki gibi daha kompleks değerler üreten basit algoritmayı kullanabilirsiniz :
Sevgiler…
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.
1.textboxa sicil girince 2.textboxa otomatik ad soyad gelsin istiyorum. şimdiden teşekkürler
abi textboxa yazdığımız sayı kadar nasıl textbox ekleyebiliriz
textbox ın içindeki yazıyı mesela a yazınca bir mesajın gelmesini istiyorum bunu nnsl yapabilirim?