读书人

关于listview控件解决方案

发布时间: 2012-02-16 21:30:36 作者: rapoo

关于listview控件
我的listview控件有两列,第一列的名字是name,第二列的名字叫url
请问我应该怎么把一些信息添加到相应的列呢?
书上的代码是这样写的:
Dim objlistv As New ListViewItem
objlistv.Text =“摆渡”
objlistv.SubItems.Add( "http://baidu.com ")
ListView1.Items.Add(objlistv)
为什么objlistv.Text =“摆渡”会自动添加到name一列呢?
而下面的代码:objlistv.SubItems.Add( "http://baidu.com ")为什么要用SubItems,这个代码会把http://baidu.com的信息添加到url的所在列,但是并没有指定要添加的列啊。

真是搞不明白
而且最后的代码:ListView1.Items.Add(objlistv)
也不明白为什么要写

请大家帮忙

[解决办法]
Windows 窗体 ListView 控件可为“详细信息视图”中的每一项显示附加文本或子项。第一列显示项文本,例如雇员编号。第二、第三及随后的列显示第一、第二及随后的关联子项。

objlistv.Text 是项文本,而其后的子项是 objlistv.SubItems 返回的集合
打个比方,你用
objlistv.SubItems.Add( "http://baidu.com ") 就在第二列显示了 "http://baidu.com "
如果你
objlistv.SubItems.Add( "aaaa ")
objlistv.SubItems.Add( "bbbb ")
objlistv.SubItems.Add( "cccc ")
就会在第二、三、四列分别显示 aaaa bbbb cccc,是按从第二列起自左向右的顺序增加的
以上前提是ListView 的View 属性必须设置为 View.Details,不然后面的列显示不出来

最后,你问“而且最后的代码:ListView1.Items.Add(objlistv)”
因为 objlistv 是一个 ListViewItem 的实例(看第一行 Dim objlistv As New ListViewItem ),(在 Details 模式下相当于一行),前面只是在向这个实例中填充相关信息,最后当然要把它添加进窗体上的ListView控件中

btw:
Dim objlistv As New ListViewItem 这样的写法在VS 2003下不会报错,但在VS 2005下会报错,因为你没有把对象实例化,在后面的引用会出现问题
VS 2005中我这样写
Dim objList As ListViewItem = New ListViewItem()

读书人网 >VB Dotnet

热点推荐