2013-05-04 92 views

回答

2

您可以檢查檢查的項目數和刪除while循環,如下

while (checkedListBox1.CheckedItems.Count > 0) { 
    checkedListBox1.Items.Remove(checkedListBox1.CheckedItems[0]); 
} 

OR

int lastIndex =checkedListBox1.Items.Count-1; 
for(int i=lastIndex ; i>=0 ; i--) 
{ 
    if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked) 
    { 
      checkedListBox1.Items.RemoveAt(i); 
    } 
} 
+1

差不多。但有時它會刪除多於選定的項目... – Bryuk 2013-05-04 04:00:19

+0

是否有可能通過checkedlistbox循環並檢查,如果選擇了項目 - 刪除它? – Bryuk 2013-05-04 04:18:52

+0

如果你要循環並刪除不使用'foreach'它不會工作,也可以使用for循環,但從最後到第一個刪除項目。 – Damith 2013-05-04 04:21:03

1

試試吧。據工作代碼

for (int i = 0; i < CheckBoxList1.Items.Count; i++) 
{ 
    if (CheckBoxList1.Items[i].Selected) 
    { 
     CheckBoxList1.Items.RemoveAt(i); 
     i--; 
    } 
} 
+0

錯誤1'對象'不包含'Selected'的定義,並且沒有找到接受'object'類型的第一個參數的擴展方法'Selected'(你缺少using指令還是程序集引用?) – Bryuk 2013-05-04 04:28:19

+0

如果兩個選定的項目是一個接一個,你會跳過第二個。 – SimpleVar 2013-05-04 06:19:40

0

訣竅從這些元素的列表中刪除某些元素是走路名單反向 - 從計數1比0。這樣,當你刪除一個元素,其餘的指標你仍然關心的還沒有改變。

相關問題