主要是实现在listView里面点击一横数据的第一个后,下面的textBox就自动显示出相应的数据的,代码如下:
         int listItems=listView1.SelectedItems[0].Index;
textBox1.Text=listView1.Items[listItems].Text;
textBox2.Text=listView1.Items[listItems].SubItems[1].Text;
textBox3.Text=listView1.Items[listItems].SubItems[2].Text;
textBox4.Text=listView1.Items[listItems].SubItems[3].Text;
textBox5.Text=listView1.Items[listItems].SubItems[4].Text;
textBox6.Text=listView1.Items[listItems].SubItems[5].Text;运行出现一个错误:指定的参数已超出有限值的范围,参数名:Index这个错误是我第二次之后点击就会出现的,第一次是不会有问题的

解决方案 »

  1.   

    这种做法一但列的位置有调整,程序就要改动.
    最好把数据做成实体对象,加到Listviewitem的tag中,选中行时把这个对象再取出来,给textbox赋值
      

  2.   

    首先要判断listView1.SelectedItems是否有数据,如果有的话,才能操作;
    再说,如果有的话,你直接用listView1.SelectedItems[0]操作不是更简单,怎么多做一道事。
      

  3.   

    我把程序写成这样就解决了,但是不是很明白,试着试着写居然行得通         int j=listView1.SelectedItems.Count;
    int i=0;
    for(int m=0;m<j;m++)
    {
    i=listView1.SelectedItems[m].Index;
    textBox1.Text=listView1.Items[i].SubItems[0].Text;
    textBox2.Text=listView1.Items[i].SubItems[1].Text;
    textBox3.Text=listView1.Items[i].SubItems[2].Text;
    textBox4.Text=listView1.Items[i].SubItems[3].Text;
    textBox5.Text=listView1.Items[i].SubItems[4].Text;
    textBox6.Text=listView1.Items[i].SubItems[5].Text;
    }
      

  4.   

    你不用这么写,你可以如下即可
    if( listView1.SelectedItems.Count > 0 )//需要在用之前需要判断是否有选定项
    {
         int listItems=listView1.SelectedItems[0].Index;
         textBox1.Text=listView1.Items[listItems].Text;
         textBox2.Text=listView1.Items[listItems].SubItems[1].Text;
         textBox3.Text=listView1.Items[listItems].SubItems[2].Text;
         textBox4.Text=listView1.Items[listItems].SubItems[3].Text;
         textBox5.Text=listView1.Items[listItems].SubItems[4].Text;
         textBox6.Text=listView1.Items[listItems].SubItems[5].Text;
    }
      

  5.   

    是哦,可以啊,谢谢你了,Knight94(愚翁),你帮我解决了不少问题,我看看我以前的记录很多都是你解决的,谢谢!!