listView1.Items.Add()与 listView1.Items[i].SubItems.Add()区别

2022-09-18 11:01:52 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript复制
listView1.Items是ListViewItem的集合

打开资源管理器,看看windows目录,使用Details方式,

一个ListViewItem就是一行,比如

目录名称,修改时间,类型,大小,这整个一条记录是一个ListViewItem

而listView1.Items[i].SubItems 是ListViewSubItem的集合

比如刚才的目录名称或者修改时间等,对于一个ListViewSubItem,只有Name、Font、Text等为数不多的属性

所以listView1.Items.Add()添加的是一个ListViewItem对象

而listView1.Items[i].SubItems.Add()添加的是一个ListViewSubItem对象

提问者回复:

代码语言:javascript复制
非常感谢~

追问:

代码语言:javascript复制
不好意思,还是不是很明白,麻烦能不能在帮我举个形象点的例子:比如刚才的目录名称、修改时间、类型……如果我继续做一个listview.items.add()是添加了一条新纪录,那么我再做一个listview1.items[i].subitems.add(),那么会有什么变化啊?

回答:

代码语言:javascript复制
我想你不能明白的原因是因为你的面向对象不够好,还没有集合的概念

再打个比方,比如一张表,可以看成是行的集合,然后每一行实际上又是多个单元格的集合,每一个单元格里又可能由多个元素组成

回到你的问题listview.items.add()是添加了一个新行(行里里面没有任何内容),listview1.items[i].subitems.add()(假设这个i就是当前这一行)是给这个新行再加单元格
代码语言:javascript复制
评价回答:非常感谢~
其他回答:
关于你提到的listView1.Items.Add这个问题,我以前也遇到过,后来解决了,
建议你去看一下北风网他们的.net课程,他们老师讲的课有解决这方面问题的。参考资料里面有你要的答
                                                        发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158254.html原文链接:https://javaforall.cn 

0 人点赞