如何取得ListView选中的列的字段?????

lifeixie 2005-01-12 01:56:29
我的ListView的VIEW属性是Details的,而且可以选状态。this.LISTVIEW1.CheckBoxes = true;
我想问一下。我想实现的功能是选中LISTVIEW的一行后,在选择事件里如何得到所选ListView的行的每个字段????
...全文
310 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifeixie 2005-01-13
  • 打赏
  • 举报
回复
请问完整的代码应该如何写?我可以在给你30分。
chenyuming2004 2005-01-13
  • 打赏
  • 举报
回复
listView1.Items[0].SubItems[i].Text //i即第几列,从0开始计数
Alden 2005-01-13
  • 打赏
  • 举报
回复
OK
lifeixie 2005-01-13
  • 打赏
  • 举报
回复
谢谢,我想问一下如果我想取得单一列的文本应该怎么写?不是一行所有列,而是一行的一列。请指教。谢谢。对了,你MSN是多少???我是wangliqun_dl@hotmail.com
chenyuming2004 2005-01-13
  • 打赏
  • 举报
回复
if(listView1.SelectedItems.Count>0)
{
foreach(ListViewItem.ListViewSubItem lvs in listView1.SelectedItems[0].SubItems)
{
textBox1.Text+=lvs.Text;
}
}

这样写,取得被选定行第一行的所有字段的文本。
lifeixie 2005-01-12
  • 打赏
  • 举报
回复
比如
列1 列2 列3
第一行 1 11 111
第二行 2 22 222
第一行 3 33 333
第二行 4 44 444

我要的功能就是点第一行的时候。(类似与DATAGRID风格)
取得第一行的列值 分别 取出来 列1, 2, 3 列的值

可是现在 取的时候点第一次好用,(在selectedindexChanged时间里写string a = this.lsvRecord.SelectedItems[0].Text;)取出来了。点第二次就不好用了。而且只能取第一列的值,可能是估计是微软的BUG吧。
我从新定义了个事件,名字叫aa然后在aa里写 if(this.lsvRecord.SelectedItems.Count == 0)
return;

string a = this.lsvRecord.SelectedItems[1].Text;
this.textBox1.Text =a;。
这时候可以取出来lsvRecord.SelectedItems[0],第一列的值,而取lsvRecord.SelectedItems[1]或lsvRecord.SelectedItems[2]的时候就取不出来了,抱错。请问怎么取选中行所有列的值。(1行就可以。不要循环所有行)
我的代码如下。

初始化的时候
//添加ListView的列
lsvRecord.Columns.Add("发信人", -2, HorizontalAlignment.Left);
lsvRecord.Columns.Add("日期 ", -2, HorizontalAlignment.Left);
lsvRecord.Columns.Add("时间 ", -2, HorizontalAlignment.Left);
lsvRecord.Columns.Add("内容", -2, HorizontalAlignment.Center);
for(int i = 0;i<40;i++)
{

int itemNumber = this.lsvRecord.Items.Count;
string[] subItem = {i.ToString(),i.ToString(),i.ToString(),i.ToString()};
lsvRecord.Items.Insert(i,new ListViewItem(subItem));
}


真正取字段的时候。


点击一行触发下面实件(只能选中行取第1列字段,)
private void aa(object sender, System.EventArgs e)
{
if(this.lsvRecord.SelectedItems.Count == 0)
return;

string a = this.lsvRecord.SelectedItems[0].Text;
//string a = this.lsvRecord.SelectedItems[1].Text;//异常!!!!

this.textBox1.Text =a;
}


请高手指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


chenyuming2004 2005-01-12
  • 打赏
  • 举报
回复
你要得到什么了说的清楚一点。
lifeixie 2005-01-12
  • 打赏
  • 举报
回复
不行啊。有问题!
chenyuming2004 2005-01-12
  • 打赏
  • 举报
回复
foreach(ListViewItem.ListViewSubItem lvs in listView1.Items[0].SubItems)
{
lvs.Text //每一行每个字段所显示的文本
}
chenyuming2004 2005-01-12
  • 打赏
  • 举报
回复
foreach(ColumnHeader ch in listView1.Columns)
{
ch.Text //字段的显示文本
}

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧