c#新手 请教 关于WInform的。ListView 与ListViewItem 的问题,谢谢各位

Kogeo_Guan 2012-07-02 03:58:51
你们好! 新手请教个问题哦
我的 ListView(控件名ListView1) 中有 3列 分别是.
名字 电话 地址
对应的Column name 是
name tel ads
放有数据 xml 中 有
对应的 name,tel,ads 节点,并多出 sex等等。(节点排序 位置 不与 ListView 中的列位置相同)

foreach (XmlNode xNode in xNodelist)
{
ListViewItem litem = new ListViewItem();
foreach (XmlElement val in xNode)
{
litem.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = item.Name, Text = item.InnerText });
}
listView1.Items.Add(litem);
}

以上写法并不能把 ListViewItem 的name 中的值 对应的插入listView1 的对应name 列中.
请问.. 怎么才可以 对应的插入呢??先 谢谢各位.
( 排除修改 xml 中的数据排序位置的方法. )
...全文
674 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kogeo_Guan 2012-07-03
  • 打赏
  • 举报
回复
又沉了.... 有人能帮忙解决下这个问题么?
Kogeo_Guan 2012-07-03
  • 打赏
  • 举报
回复
先谢谢楼上了。
这个 是 先加 列名,宽度 和 排列形式。
然后再添加 item 到对应 顺序的列 里吧??
这个的话。 和我的现状 没什么区别啊...
-----------------------------------------------
我现在并不是不能显示。而是 显示的位置 错乱..
例如
name tel ads
tel ads name
当然。我知道修改 columns 位置 或者 修改 xml的节点位置 就可以成功排列的运行。
可是我想知道有没有办法 根据ListView Columns 的name 和 ListViewItem Item 的name 来排列对应.
美丽的鸡翅膀 2012-07-02
  • 打赏
  • 举报
回复
{ Name = item.Name, Text = item.InnerText }
你的这个方法有问题,litem根本没值,这个问题根本不可能需要翻上几十页,用别人的方法就要弄清楚别人为什么这么写,
给你一个标准的写法,自己研究下,看不懂的先MSDN

listView1.Columns.Add("时间", 120, HorizontalAlignment.Center);
listView1.Columns.Add("操作", 120, HorizontalAlignment.Center);
listView1.Columns.Add("数据", this.Width - listView1.Columns[0].Width - listView1.Columns[1].Width - 15, HorizontalAlignment.Left);

ListViewItem item = new ListViewItem();
item.SubItems[0].Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
item.SubItems.Add("0");
item.SubItems.Add("客户端启动");
listView1.Items.Insert(listView1.Items.Count,item);

这个是服务器的一段,和你的差不多,你改下名就可以
美丽的鸡翅膀 2012-07-02
  • 打赏
  • 举报
回复
{ Name = item.Name, Text = item.InnerText }
你的这个方法有问题,litem根本没值,这个问题根本不可能需要翻上几十页,用别人的方法就要弄清楚别人为什么这么写,
给你一个标准的写法,自己研究下,看不懂的先MSDN

listView1.Columns.Add("时间", 120, HorizontalAlignment.Center);
listView1.Columns.Add("操作", 120, HorizontalAlignment.Center);
listView1.Columns.Add("数据", this.Width - listView1.Columns[0].Width - listView1.Columns[1].Width - 15, HorizontalAlignment.Left);

ListViewItem item = new ListViewItem();
item.SubItems[0].Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
item.SubItems.Add("0");
item.SubItems.Add("客户端启动");
listView1.Items.Insert(listView1.Items.Count,item);

这个是服务器的一段,和你的差不多,你改下名就可以
Kogeo_Guan 2012-07-02
  • 打赏
  • 举报
回复
伤心.. 是不是因为我发的帖子太没水平咯。 都没人愿意来帮我1把.. 跪求回复..
我知道老大们工作都好忙的, 希望能抽1点点时间帮我看看呗.. 谢谢啦。
这个问题困扰好久了。百度也基本番了几十页 都没找到想要的答案.
Kogeo_Guan 2012-07-02
  • 打赏
  • 举报
回复

litem.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = item.Name, Text = item.InnerText });

写错了
是这样才对

litem.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = val.Name, Text = val.InnerText });

因为简写了 里边的一些内容。没处理好.不好意思
请问为怎么才可以插入到相应的 列里边呢?

111,092

社区成员

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

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

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