ListView中的错误:InvalidArgument=';的值;0';对于';索引';

本文关键字:的值 索引 对于 错误 InvalidArgument ListView | 更新日期: 2023-09-27 17:58:20

当我第二次在ListView中选择某个项目时,会出现此错误。我试着调试它,当我第二次选择某个项目时,list_answers.SelectedItems.Count为0。为什么?这是我的代码:

private void list_answers_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListViewItem t = list_answers.SelectedItems[0];
            for (int i = 0; i < tasks.Count; i++)
            {
                if (t.Text == "Question №" + (i + 1))
                {
                    this.ShowOnePanel(i);
                    iter = i;
                    break;
                }
            }
        }

ListView中的错误:InvalidArgument=';的值;0';对于';索引';

更改选择时,ListView将首先取消选择当前行,然后选择新的行,因此您将有一个SelectedItems为空的调用。

你可以通过添加来解决它

if(list_answers.SelectedIndex == -1)
    return;
or
if(list_answers.SelectedItems.Count == 0)
    return;

如果您只在listview_SelectedChangeIndex事件中添加此代码,就会解决问题。

 if (finishListView.SelectedItems.Count > 0)
    {
// here your code goes
    }
    else
    {
    return;
    }

下面的链接中对这个问题有一个很好的描述:

http://www.vbforums.com/showthread.php?753867-RESOLVED-InvalidArgument-0-的值对索引无效-参数名称索引