我添加了ListView控件的SelectIndexChange事件。
当我第一次选择一行时正常,当我选择另一行时出现异常。提示:索引值超过了范围,index参数。
我的程序:
private void listView_SelectIndxChange(..)
{
  try{
   MessageBox.Show(this.listView.SelectItem[0].Text.ToString());
   catch(Exception err)
   {   
      MessageBox.Show(err.Messages);
   }
}
请问错误在那?

解决方案 »

  1.   

    MessageBox.Show(this.listView.SelectedText.ToString());
    可以么??
      

  2.   

    在SelectIndexChange事件中是这样的。
    你可以试一下用Click事件,这样就不会出错了。
    选中另一项时,ListView是先把SelectItems中最后一次选中的项清空再把新的项加进去的,除非你按下了Ctrl同时选中新的项。
      

  3.   

    楼上说得不错,当你改变SelectIndex的时候SelectIndexChange事件发生了两次,第一次把原来的选择项去掉,这个时候是没有选择项的,所以,listView.SelectItem[0]索引超出范围,第二次才把新的选择项选上.
    加个判断就可以了:if(listView1.SelectedItems.Count>0)