我是C#的新手,但我遇到一个错误,指出:InvalidArgument='2'的值对'index'无效。
我想将checkedlistbox中的项目设置为选中,如果listbox中有匹配项。有人能帮助我解决这个问题吗?
这是我的代码中出现问题的部分。
for (int i = 0; i < checklistbox.Items.Count; i++)
{
if (checklistbox.Items[i].ToString() == listbox.Items[i].ToString())
{
//Check only if they match!
checklistbox.SetItemChecked(i, true);
}
}
2条答案
按热度按时间plicqrtu1#
你只需要使用嵌套的for循环。
zwghvu4y2#
出现此错误的原因是因为您正在循环检查列表框的项目计数。例如,如果该数组中有3个项目,而列表框只有2个项目,则在第三次循环中(当i = 2时),您试图引用列表框数组中不存在的项目。
另一种做法是这样的:
更新:更新答案以添加MarkAsChecked()并循环检查表数组中保存的用户输入值。