首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

关于listview控件解决方案

2012-02-16 
关于listview控件我的listview控件有两列,第一列的名字是name,第二列的名字叫url请问我应该怎么把一些信息

关于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()

热点排行