我有一个 ListView ,我想在按下按钮 时删除所选项。此外,我将该项目用于其他一些操作。基本上,我使用项目字符串的一些字母来匹配文件并将其删除。如果所选项目是 ListView 中的第一个,则此方法有效,但如果是第二个、第三个等则无效。
private void delete_button_Click(object sender, EventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected)
{
string var1 = listView1.SelectedItems[i].ToString(); //error
string var2 = var1.Substring(31, 5);
... // code for other actions
listView1.Items[i].Remove();
i--;
}
}
}
报错
ArgumentOutofRangeException was not handled" - Invalid argument value of '1' is not valid for 'index'
我不明白问题是什么以及为什么只有当它是第一项时它才有效。
最佳答案
选定项仅包含选定项,但您正在遍历整个集合。
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected)
{
string var1 = listView1.Items[i].ToString(); // <-------
string var2 = var1.Substring(31, 5);
... // code for other actions
listView1.Items[i].Remove();
i--;
}
}
关于c# - '1' 的无效参数值对 'index' 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18354865/