不是很明白
把t=lv1.SelectedItems[0].SubItems[1].Text;换成t=e.SelectedItems[0].SubItems[1].Text;试试看

解决方案 »

  1.   


                this.listView1.View = View.Details;
                listView1.Columns.Add("001", 10, HorizontalAlignment.Left);
                listView1.Columns.Add("002", 10, HorizontalAlignment.Left);
                listView1.Columns.Add("003", 10, HorizontalAlignment.Left);
                listView1.Columns.Add("004", 10, HorizontalAlignment.Left);
                listView1.Columns.Add("005", 10, HorizontalAlignment.Left);
                listView1.Columns.Add("006", 10, HorizontalAlignment.Left);
                listView1.Columns.Add("007", 10, HorizontalAlignment.Left);
                for (int i = 0; i < 10; i++)
                {
                    ListViewItem li = new ListViewItem();
                    li.SubItems.Clear();
                    li.SubItems[0].Text = i.ToString(); 
                    li.SubItems.Add("SubItems1" + i.ToString());
                    li.SubItems.Add("SubItems2" + i.ToString());
                    li.SubItems.Add("SubItems3" + i.ToString());
                    li.SubItems.Add("SubItems4" + i.ToString());
                    li.SubItems.Add("SubItems5" + i.ToString());
                    li.SubItems.Add("SubItems6" + i.ToString());
                    this.listView1.Items.Add(li); 
                }private void listView1_DoubleClick(object sender, EventArgs e)
            {
                Console.WriteLine(this.listView1.SelectedItems[0].SubItems[1].Text);
            }写了个例子
    没有你的问题
      

  2.   

    难道你在change事件里写的代码?
      

  3.   

    谢谢各位的回答!还是那种情况:
    具体情况我介绍一下:
    我在一个项目中建立两个窗体:Form1.cs和listview_se.cs(都在命名空间:namespace ListView)
    Form1.cs中实现数据连接、在Listview中显示数据、调用第二个窗体listview_se.cs,程序调试都能通过,就是显示结果不对头。
    我要想实现的功能是:第一个窗体通过listview显示数据库的数据,然后我任意点击listview的一行数据,他的详细内容在第二个窗体中显示,这时第二个窗体第一次text中显示为空的,什么都没有,而第二次点listview行的数据时,第二个窗体中的text显示的是第一次点击的数据,第二个窗体始终显示的是第一次点行的数据!
    调试程序能通过,就是逻辑上有错误!
    第一个窗体我在:listview中的DoubleClick作了如下事件
    private void lv1_DoubleClick(object sender, System.EventArgs e)
    {
    System.Windows.Forms.Form listview_se=new ListView.listview_se();
    listview_se.Show();//调用第二个窗体;
    t=lv1.SelectedItems[0].SubItems[1].Text;//在第二个窗体中要显示的当前在Listview中点击的数据;
    }第二个窗休作了如下动作:
    private void listview_se_Load(object sender, System.EventArgs e)
    {
    tb.Text=ListView.Form1.t;//接第一个窗体t=lv1.SelectedItems[0].SubItems[1].Text数据;
    }这个tb.Text=ListView.Form1.t;第一次显示为空,第二次显示的是上一次lv1.SelectedItems[0].SubItems[1].Text的数据,也就是说当前N操作,而显示应显示N次的操作数据,但他显示的是N-1次的数据(第一次显示为空)。调试程序全部通过,就是这里显示有逻辑错误的!
    麻烦大家了!
    我自已写上的代码全部在贴子贴出来了!
      

  4.   

    你这个是多窗体传值问题
    在第二个窗体上定义一个public 的变量
    public string ttt = "";
    System.Windows.Forms.Form listview_se=new ListView.listview_se();
    listview_se.ttt = lv1.SelectedItems[0].SubItems[1].Text;//在第二个窗体中要显示的当前在Listview中点击的数据;
    listview_se.Show();//调用第二个窗体;private void listview_se_Load(object sender, System.EventArgs e)
    {
    tb.Text=ttt;//接第一个窗体t=lv1.SelectedItems[0].SubItems[1].Text数据;
    }
      

  5.   

    感谢大家的回复,特别是lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))的提醒!找到原因了:主要是这个
     private void lv1_DoubleClick(object sender, System.EventArgs e)
    {
    System.Windows.Forms.Form listview_se=new ListView.listview_se();
    t=lv1.SelectedItems[0].SubItems[1].Text;
    listview_se.Show();

    }
    这一句t=lv1.SelectedItems[0].SubItems[1].Text;放在listview_se.Show();它之前,先赋值再传到第二窗体!!
    谢谢大家!