第87行是这样的
for (i = 0; i < 22; i++)
            {
                apply[i] = listView1.SelectedItems[0].SubItems[i].Text;///第87行
            }************** 异常文本 **************
System.ArgumentOutOfRangeException: InvalidArgument=“0”的值对于“index”无效。
参数名: index
   在 System.Windows.Forms.ListView.SelectedListViewItemCollection.get_Item(Int32 index)
   在 PatentManager.UserControl.answer.listView1_SelectedIndexChanged(Object sender, EventArgs e) 位置 D:\Manager\UserControl\answer.cs:行号 87
   在 System.Windows.Forms.ListView.OnSelectedIndexChanged(EventArgs e)
   在 System.Windows.Forms.ListView.WmReflectNotify(Message& m)
   在 System.Windows.Forms.ListView.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
小弟不知道出了什么问题,应该怎么改,

解决方案 »

  1.   

    通过索引去访问如果item数为0的话经常会产生异常的 所以最好是在遍历之前判断一下 当前容器里的对象数然后再去索引. 这样规避了异常速度也能接受的
      

  2.   

    if(listView1.SelectedItems.Count > 0)//还要确认你有22列
    {
    for (i = 0; i < 22; i++)
    {   
          apply[i] = listView1.SelectedItems[0].SubItems[i].Text;///第87行
    }}
      

  3.   

    很搞不懂的异常中明明写的是---------------------------------------
    System.ArgumentOutOfRangeException: InvalidArgument=“0”的值对于“index”无效。
    参数名: index
       在 System.Windows.Forms.ListView.SelectedListViewItemCollection.get_Item(Int32 index)
    ----------------------------------------
    居然扯到SubItems[0-21]去了.....