我在listView里加载了一些数据,现在想对其进行编辑调整,然后把调整之后的值读到一个数组里,可是每次读的都是原先的值,不知道怎么回事,请大侠指教,在线等,谢谢!以下是代码   private void listView2_AfterLabelEdit(object sender, LabelEditEventArgs e)
   {
           List<string> ClassesChange = new List<string>();
            if (ClassesChange.Count > 0)
            {
                ClassesChange.Clear();
            }
            listView2.Update();
            for (int i = 0; i < listView2.Items.Count; i++)
            {
                string ItemsValues = listView2.Items[i].SubItems[0].Text;
                ClassesChange.Add(ItemsValues);
            }
    }
    数据是在load事件里面加的,只加载了一列数据。

解决方案 »

  1.   

    这个事件里 如果你要获取新值使用 e.Label;
      

  2.   

    是在画面上直接编辑的嘛?
    如果在画面上直接编辑,程序里取到的应该还是原来的值,必须要在程序里重新设定listView2里的值!
      

  3.   

    是在画面上编辑的,怎么在程序里重新设定listView2里的值,还是用加载的方式??还有没有其他方法呢
      

  4.   

    e.Label这个里面是你画面上输入的新值!Item里还是原来的值
      

  5.   

    在执行 AfterLabelEdit 方法时候 ListView数据还没有改变..
    如果要获取新的数据 使用该事件的参数 LabelEditEventArgs.Label 来获取用户输入的新值
      

  6.   

    我试了一下,确实是这样的。现在需要把listview2里的所有数据(包括修改后的数据)按顺序都要读到一个数组里,这些值怎么获取呢?
      

  7.   

    循环的时候判断下索引. for (int i = 0; i < listView2.Items.Count; i++)
                {
     string ItemsValues = listView2.Items[i].SubItems[0].Text;if (i==e.Item)ItemsValues=e.Label;
                                   ClassesChange.Add(ItemsValues);
                }