listview 删除选中项的问题
其中一个方法:如下
private void deleteItem( ListView listview)
{
for (int i = 0; i < listview.Items .Count ; i++)
{
if (listview.Items[i].Checked == true)
{
listview.CheckedItems[0].Remove();
}
}
}
结果总是会在删除一部分选中项,留下一部分选中项 ? 大神们,这是为啥?
------解决方案--------------------应该会将你所有选中的项,即listview.CheckedItems[i].Checked=true的item全部删除;
因为item[0]删除后,item[0]后面紧跟着选中的CheckedItem会填充item[0]的位置,直到遇见item[0].Checked=false的那个选项
我觉得代码是这样
------解决方案--------------------listview.CheckedItems[0].Remove();这行代码会改变listview.Items .Count的值,而你的循环用到了它,所以会导致循环的次数不是你所希望的。你可以考虑把所有的check的项全部读出来然后再次循环删除。