日期:2014-05-18  浏览次数:21176 次

ListView选中取值问题
我在选中ListView值的时候一个很奇怪的问题

private void lv_DoubleClick(object sender, EventArgs e)
  {

  string str1 = lv.SelectedItems[0].SubItems[2].Text.Trim(); //这个能正常读值 string str2= lv.SelectedItems[0].SubItems[3].Text.Trim(); //这个也能正常读值 string str3 = lv.SelectedItems[0].SubItems[9].Text.Trim(); //报InvalidArgument=“0”的值对于“index”无效。 //注我的ListView里面有10多列  

  }

这个什么回事??

------解决方案--------------------
if(listView1.SelectedItems.Count > 0)

for (i = 0; i < 15; i++) 
{
A[i] = listView1.SelectedItems[0].SubItems[i].Text;



先判断
------解决方案--------------------
if(listView1.SelectedItems.Count > 0) 

for (i = 0; i < listView1.SelectedItems.Count ; i++) 
{
str = listView1.SelectedItems[0].SubItems[i].Text; 




------解决方案--------------------
首先,你的ListView里边有没有值呢?
是不是索引超出范围了?
当你取索引为9的值时,你的ListView里没有这么多值,所以就是null了,你在试试吧,把每个值挨个打印出来看一下
------解决方案--------------------
探讨
if(listView1.SelectedItems.Count > 0) 

for (i = 0; i < listView1.SelectedItems.Count ; i++) 
{
str = listView1.SelectedItems[0].SubItems[i].Text;