C#中LISTVIEW返回数据不对头? 不是很明白把t=lv1.SelectedItems[0].SubItems[1].Text;换成t=e.SelectedItems[0].SubItems[1].Text;试试看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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); }写了个例子没有你的问题 难道你在change事件里写的代码? 谢谢各位的回答!还是那种情况:具体情况我介绍一下:我在一个项目中建立两个窗体: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次的数据(第一次显示为空)。调试程序全部通过,就是这里显示有逻辑错误的!麻烦大家了!我自已写上的代码全部在贴子贴出来了! 你这个是多窗体传值问题在第二个窗体上定义一个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数据;} 感谢大家的回复,特别是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();它之前,先赋值再传到第二窗体!!谢谢大家! 请问datalist绑定数组以及超链接问题 求助: 控制台验证邮箱注册问题,帮忙看看 大家都说下自己都用过哪些第三方控件?主要是界面好看的 局域网环境Winform上传EXCEL文件到指定机器上. 关于泛型的问题 如何用C#实现复制粘贴? XmlTextReader的问题 一个关于重写的问题 加载完题目以后事先倒计时 设计一个控件,如何在用户使用该控件编程时,单击时出现一个对话框? 如何将绑定的javascript效果在.net中运行出来 如何磨砺C#?
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);
}写了个例子
没有你的问题
具体情况我介绍一下:
我在一个项目中建立两个窗体: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次的数据(第一次显示为空)。调试程序全部通过,就是这里显示有逻辑错误的!
麻烦大家了!
我自已写上的代码全部在贴子贴出来了!
在第二个窗体上定义一个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数据;
}
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();它之前,先赋值再传到第二窗体!!
谢谢大家!