c# - '1' 的无效参数值对 'index' 无效

标签 c# winforms visual-studio-2010 listview

我有一个 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/

相关文章:

c# - 数据源上的 Kendo TreeView 同步方法不起作用

c#/.net项目如何保存/组织数据库查询

c# - 属性和方法的区别

c# - 我可以使用 C# 禁用表单的 'close' 按钮吗?

visual-studio - 为什么在尝试使用Visual Studio Analyzer时遇到错误?

c# - 意外编辑文件时禁用 Visual Studio 2010 中的自动 checkout

c# - 如何将类似控制台的元素添加到 c# winforms 程序

c# - ShowInTaskbar=true 让我的表单消失

c# - 如何以编程方式在 MultiSelectionComboBox 中选择一个(或多个)项目?

c++ - 如何在 C++ 中重写 cout?