C#使用ListView第二次选择时报错的解决方法

查看源码

在C#中使用ListView,当单击一个item时一切正常,但是再点击另一个item时提示:



“System.ArgumentOutOfRangeException”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
其他信息: InvalidArgument=“0”的值对于“index”无效。



问题原因
listView 的selectindexChange事件每次都要执行两次,第一次将选择的数目,就是selectitems.count清空,然后才重新指定,所以在第二次里selectitems.count = 0 ,也就是没有选择任何项,所以报了index异常.
解决办法
在selectindexchange事件中,用If语句屏蔽一地此indexchange的一地此执行
修正后的代码
[cc lang=”c#”]
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count == 0)
{
//屏蔽第一次改变
}
else
{
MessageBox.Show(listView1.SelectedItems[0].Text);
}
}
[/cc]