SENDE YAZ , FARKIN OLSUN...

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!!!

7 yorum:

  1. 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ıtlaSil
  2. Selamlar , Öncelikle şunu belirtmeliyimki önce denemek en güzelidir.Şöyle yanıtlıyayım;
    eski 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!!!

    YanıtlaSil
  3. Gerçekten yararlı bi yazı olmuş,eline sağlık...

    YanıtlaSil
  4. :)) Bencede , Beraber mi yapmıştık,öyle hatırlıyorum sanki? :=)

    YanıtlaSil
  5. hocam öncelikle teşekkür ederim. kod hayli işime yaradı ama bir yerde bir eksiklik var.

    formun ü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 ?

    YanıtlaSil
  6. 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.
    private 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...

    YanıtlaSil