Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
C# ta checklistboxdan girilen veriyi listboxa atama

Çözüldü 1 Cevaplar 104 Gösterim C/C++
checklistboxtan seçtiklerimizi butona basınca listboxa atamasını istiyorum.Sorun şu ki checklistboxtan seçtiklerimin her seferinde sadece yarısını atıyor. 10 veri seçsem 5 tanesini 2 veri seçsem 1 tanesini atıyor. Sorunu bir türlü çözemedim. Butona atadığım kod şu şekilde:

for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
            {
                listBox1.Items.Add(checkedListBox1.CheckedItems[i]);
                checkedListBox1.Items.Remove(checkedListBox1.CheckedItems[i]);
            }
kapalı

1 cevap

1
En İyi Cevap
Denemek için iki ayrı for içinde yapar mısın?

ilkinde add işlemini bitir, ikincisinde de silme işlemini yap.

Olmazsa başka birşey deneriz.
(4k puan)
seçti
3Yorumlar
(206 puan)
ayırdım denedim. checklistboxtan listboxa seçileni atamada herhangi bir problem olmuyor ancak seçileni remove etmede sadece yarısını atıyor. şöyle bi çözüm buldum biraz emanet oldu ama çalışıyor:

for (int i = checkedListBox1.CheckedItems.Count-1; i >= 0; i--)
            {
                listBox1.Items.Add(checkedListBox1.CheckedItems[i]);
                checkedListBox1.Items.Remove(checkedListBox1.CheckedItems[i]);
            }
(4k puan)
Herhalde sen remove dedikçe elindeki listenin boyu kısalıyor ondan kaynaklı sorun yaşıyorsun. O şekilde anladım ben. O yüzden iki for'a ayır dedim. Diğer bir konu da bunları array olarak ekleme opsiyonun yok mu?

Örneğin:

listbox1.items.add(checkedListBox1.CheckedItems);
CheckedListBox1.Items.Remoce(checkedListBox1.CheckedItems);

Şeklinde
(206 puan)
bende öyle düşündüm listenin boyunu azaldığından sıkıntı çıkıyordu heralde. şimdi kısalıyor ama bende döngüyü azalan yaptığım için saymada sıkıntı çıkarmıyor. Array denemedim ama daha kolay olurdu büyük ihtimal. Teşekkürler