【发布时间】:2013-05-04 03:37:19
【问题描述】:
在我的应用中,用户可以在checkedlistbox 中添加一些项目,然后用户选择一些元素并单击按钮“删除”。如何循环访问我的 checkedListBox 并删除选定的项目?
【问题讨论】:
标签: c# loops checkedlistbox
在我的应用中,用户可以在checkedlistbox 中添加一些项目,然后用户选择一些元素并单击按钮“删除”。如何循环访问我的 checkedListBox 并删除选定的项目?
【问题讨论】:
标签: c# loops checkedlistbox
您可以检查检查项目的数量并在while循环中删除,如下所示
while (checkedListBox1.CheckedItems.Count > 0) {
checkedListBox1.Items.Remove(checkedListBox1.CheckedItems[0]);
}
或
int lastIndex =checkedListBox1.Items.Count-1;
for(int i=lastIndex ; i>=0 ; i--)
{
if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked)
{
checkedListBox1.Items.RemoveAt(i);
}
}
【讨论】:
foreach 它不会工作,你也可以使用for循环但从最后一个到第一个删除项目。
试试看。这是工作代码
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
if (CheckBoxList1.Items[i].Selected)
{
CheckBoxList1.Items.RemoveAt(i);
i--;
}
}
【讨论】:
从这些元素的列表中删除某些元素的技巧是反向遍历列表 - 从 count-1 到 0。这样当你删除一个元素时,你仍然关心的剩余元素的索引没有改变.
【讨论】: