2013-05-04 80 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。这样,当你删除一个元素,其余的指标你仍然关心的还没有改变。

相关问题