checkbox'tan listbox 'a sadece 1 defa ekleme

my-lord
27-03-2017, 18:53   |  #1  
my-lord avatarı
OP Taze Üye
Teşekkür Sayısı: 2
10 mesaj
Kayıt Tarihi:Kayıt: Mar 2017

Merhaba arkadaşlar checkbox ile ilgili bir sorum olacaktı.


private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            listBox1.Items.Add(checkBox1.Text);               
        }

checkbox ın üzerine tıklayıp tiki kaldırıp tekrar tıklayınca listbox 'a checkbox ın text sini tekrar ekliyor.Ben checkbox ın içindeki yazının sadece bir defa eklenmesini istiyorum.Bu sorunu çözebilmek için nasıl bir if kontrol yazabilirim?

Son Düzenleme: my-lord ~ 27 Mart 2017 20:47 Neden:
White-Fox
27-03-2017, 23:03   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

int a=0;


       private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {  
            if(a==0)
            {     
            listBox1.Items.Add(checkBox1.Text);
             a=1;   
             }
             else
             {
              
             }         
        }
//int değeri yerine bool da kullanılır.
//Program kapanıp açıldığında 1 değeri kalmaz.
/*şunu belirteyim checkbox değerinin değiştiği olaydan yürümek yerine listbox a tıklandığında checkboxların checked özelliğinin true-false una göre iş yapabilirsiniz.*/
//Kolay gelsin...

White-Fox bu faydalı yanıtı için aşağıdaki 1 kişiden teşekkür aldı... [ Göster ]
my-lord
27-03-2017, 23:35   |  #3  
OP Taze Üye
Teşekkür Sayısı: 2
10 mesaj
Kayıt Tarihi:Kayıt: Mar 2017

Bu  olayı checkbox ın dışına çıkmadan yapabilir miyiz?Çünkü bir çok checkbox olursa her biri için bir sürü değişken tanımlamak zorunda kalırız.

White-Fox
28-03-2017, 00:56   |  #4  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

//Yaparsın şöyle ne zaman adam listbox'a tıklar ozaman tüm checkboxlar için;

if(checkbox1.checked=true)

{

gerekli itemi ekle

}

gibi bir dizayn olabilir yada ,

//Controls ile bu iş çözülebilir örneğin ;

private void Method(int a)
{
    
    var chkName = "CheckBox" + a;
    var chk = Controls[chkName] as CheckBox;
    if (chk.checked = true) // boyle bir checkbox var ise ve işaretli ise
    {
       listBox1.Items.Add(chk.Text);
    }
}

/*Yani 30 tane checkbox varsa misal for için methodu al 30 a kadar döndür true iseler textlerine listbox a ata*/

//Kolay gelsin...

Güven Topal
31-07-2017, 13:58   |  #5  
Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Tem 2017

If (checkbox1.checked)

{

If(Listbox1.items.count <0)

{

Listbox1.items.add(checkbox1.text)

}

Else

{

Listbox1.items[0].text = checkbox1.text;

}

}

Son Düzenleme: Güven Topal ~ 31 Temmuz 2017 14:00