2012-04-10 4 views
0

Ich habe eine überprüfte Listbox und ich schreibe Code für zwei Schaltflächen, 1, die alle ausgewählten Elemente nach oben bewegt, und eine, die jedes Element nach unten bewegt. Die eine für die Arbeiten zu bewegen, aber ich kann die andere an die Arbeit: Sie Ich denke,Warum funktioniert der Sortiercode meiner überprüften Listbox nicht?

//Move up 
     private void button2_Click(object sender, EventArgs e) 
     { 
      for (int i = 1; i < checkedListBox1.Items.Count; i++) { 
       if (checkedListBox1.GetItemChecked(i)) { 
        checkedListBox1.Items.Insert(i - 1, checkedListBox1.Items[i]); 
        checkedListBox1.SetItemChecked(i - 1, true); 
        checkedListBox1.Items.RemoveAt(i + 1); 
       } 
      } 
     } 
//Move Down 
     private void button3_Click(object sender, EventArgs e) 
     { 
      for (int i = checkedListBox1.Items.Count - 2; i >= 0; i--) 
      { 
       if (checkedListBox1.GetItemChecked(i)) 
       { 
        checkedListBox1.Items.Insert(i + 1, checkedListBox1.Items[i]); 
        checkedListBox1.SetItemChecked(i + 1, true); 
        checkedListBox1.Items.RemoveAt(i); 
       } 
      } 
     } 

Antwort

3

müssen diese in der zweiten Methode:

checkedListBox1.Items.Insert(i + 2, checkedListBox1.Items[i]); 
checkedListBox1.SetItemChecked(i + 2, true); 

Sie aktuelle Methode ist das Einfügen einer Kopie des aktuellen Elements vor dem folgenden Element, das es im Grunde nur an der gleichen Stelle platziert.

+0

haha ​​yep das funktioniert! Ich hatte + 2 früher, aber andere Teile des Codes funktionierten nicht, und ich dachte dieser Teil arbeitete nicht, also gab ich es nie einen zweiten Versuch – Oztaco

Verwandte Themen