25 Mayıs 2010 Salı
Tek Bir Fonksiyonla Bütün TextBox ları Temizlemek
Selamlar,Bazen yazdığımız programlarda o kadar çok TextBox oluyor ki,"temizle" butonunu oluşturmaya korkuyor insan.Ama korkmayın:)Yazacağımız küçük bir fonksiyonla bu dertten kurtuluyoruz.
Nasıl mı? Şu şekilde ;
TextBox larımızın bulunduğu forma çift tıklayalım(Yada Solution Explorer'dan sağ Tıklayıp View Code da diyebilirsiniz).
Formun kod kısmına girmiş bulunduk.Burada fonksiyonumuzu oluşturalım.
Buyrun Altta Direk Kopyalanıp Kullanılabilir Halini Veriyorum...
private void temizle()
{
foreach (Control c in Controls)
{
if (c is TextBox)
if (c.Text != "")
c.Text ="";
}
}
Fonksiyonumuzu oluşturduktan sonra , hangi buton tıklandığında çalışacak ise o butonun Click_Event kısmında çağırıyoruz.
private void button1_Click(object sender, EventArgs e)
{
temizle();
}
Daha net anlaşılması açısından alttaki yorumlanmış halinede bakabilirsiniz.
private void temizle() // Temizleme Fonksiyonumuz
{
foreach (Control c in Controls)//control tipinde c diye bir değişken oluşturduk ve foreach ile tek tek formumuzdaki bileşenleri çekiyoruz
{
if (c is TextBox)//if içerisinde gelen parametre bir textbox mı diye kontrol ediyoruz , TextBox ise İçerdeki "if" yapısına giriyoruz
if (c.Text != "")//Eğer gelen Textbox boş değil ise
c.Text ="";//Gelen TextBox'un textini boş yaptık...
}
}
private void button1_Click(object sender, EventArgs e)
{
temizle();//Butonumuza Tıkladığımız anda bu fonksiyon çalıştırılacak.
}
Bu kodu ComboBox , CheckBox , vs. olarak modifiye edebilirsiniz.Kendinize Göre Uyarlayıp Şekillendirebilirsiniz.
İşte Bu Kadar Basit :)
Umarım Faydalı Olmuştur.Sende Yaz , Farkın Olsun!!!
Kaydol:
Kayıt Yorumları (Atom)
Selam,Gerçekten çok kullanışlı.Peki modifiye derken mesela içerisinde "JAVA" yazan bir textbox varsa onu silmek istiyorum,aynen bu yöntemle yapabilirmiyim ? kolay gelsin
YanıtlaSilSelamlar , Öncelikle şunu belirtmeliyimki önce denemek en güzelidir.Şöyle yanıtlıyayım;
YanıtlaSileski kodumuzun tek satırını şu şekilde değiştirelim;
private void temizle()
{
foreach (Control c in Controls)
{
if (c is TextBox)
if (c.Text == "Java")//Yani Textimiz Java ise Temizlesin dedik.Ne istiyosak onu yazabiliriz.
c.Text ="";
}
}
Bu şekilde içerisinde "Java" yazan text i temizlemiş olduk.
Kolay Gelsin.
Sende Yaz , Farkın Olsun!!!
Gerçekten yararlı bi yazı olmuş,eline sağlık...
YanıtlaSilsüper :)
YanıtlaSil:)) Bencede , Beraber mi yapmıştık,öyle hatırlıyorum sanki? :=)
YanıtlaSilhocam öncelikle teşekkür ederim. kod hayli işime yaradı ama bir yerde bir eksiklik var.
YanıtlaSilformun üstünde bir adet tabcontrol var. onunda iki tane tabpage i var. bu tabpage ler içinde de bir sürü textbox var. sizin verdiğiniz kod sadece formun üstündekileri temizledi. tabcontrollerin içindekileri temizlemedi.
tabcontrollerin içindekileri nasıl temizlettirebiliriz ?
Selamlar , Suanda Amerikada oldugum icin saat farkindan dolayi biraz gec de olsa yardimci olmaya calisayim , ne demek istedigini anladim. Biz normalde fonkisoyonumuza form uzerindeki kontrolleri gonderiyorduk, TabControl bir container oldugu icin form uzerinde yer alan diger controller gibi degilde basamak basamak TextBox lara erismek gerekiyor. Aslinda zor degil , su sekilde yapabilirsin , ben denedim calisiyor.
YanıtlaSilprivate void temizle()
{
foreach (Control c in Controls)
{
if (c is TabControl)//Eger TabControlse bir basamak iceri girecek
foreach (Control t in c.Controls)//TabControlun Controlleri icerisinde ariyoruz
{
if (t is TabPage)//Sonrasinda TabPage in icerisinde ariyoruz
foreach (Control j in t.Controls)//Burda kontrol ediyoruz,TabPage imizin icerisindeki nesneleri tek tek aliyoruz
{
if (j is TextBox)//TabPage imizin icerisindeki nesne TextBox ise,daha oncede yaptigimiz gibi text ini empty string olarak duzenliyoruz
if (j.Text != "")
j.Text = "";
}
}
if (c is TextBox)//Bu kisim zaten eskisiyle ayni,normal TextBox denetimi yapiyoruz
if (c.Text != "")
c.Text = "";
}
Thats all :)
Umarim isine yarar...
Sende Yaz Farkin Olsun...