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]); }
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.
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]);
}
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
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