ListView中的错误:InvalidArgument =' 0'的值不适用于' index'

时间:2014-04-14 01:19:04

标签: c# winforms listview

第二次在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;
                }
            }
        }

3 个答案:

答案 0 :(得分:5)

更改选择时,ListView将首先取消选择当前行,然后选择新行,这样您将调用SelectedItems为空的调用。

您可以通过添加

解决它
if(list_answers.SelectedIndex == -1)
    return;

or

if(list_answers.SelectedItems.Count == 0)
    return;

答案 1 :(得分:0)

答案 2 :(得分:0)

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

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