如何使用ListView

 我来答
青薯后木18
2017-11-10 · TA获得超过311个赞
知道小有建树答主
回答量:283
采纳率:75%
帮助的人:219万
展开全部
ListView控件的最基本用法是在窗体中以表格形式显示数据,是应用非常广泛的一个窗体控件。控件工具箱在初始状态下是没有ListView控
件的,需要我们在工具-附加控件中勾选"Microsoft ListView Control,Version
6.0",这样ListView控件就会显示在控件工具箱中了。ListView分为表头和数据两部分,而数据部分的第一列和其他列又是分开的,需要用不
同的方式来访问。假设我们在Sheet1中有一个5行4列的表格,现在我们看下怎样将这个表格中的数据导入到ListView控件中。
下面我们先来看怎样给ListView控件添加表头。有两种方法,先来看第一种

Private Sub UserForm_Initialize()
ListView1.ColumnHeaders.Add 1, "A", "姓名", ListView1.Width / 4, lvwColumnLeft '列数,key,text,宽度,对齐方式,图片
ListView1.ColumnHeaders.Add 2, "B", "性别", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 3, "C", "年龄", ListView1.Width / 4, lvwColumnCenter
ListView1.ColumnHeaders.Add 4, "D", "住址", ListView1.Width / 4, lvwColumnCenter
ListView1.View = lvwReport '显示方式
ListView1.FullRowSelect = False '是否整行选取
ListView1.Gridlines = True '是否显示表格线
End Sub

添加表头的第一种方法是用ColumnHeaders.Add的方法,该方法包括6个参数,比如上面第一行代码中1代表第一列,"A"是该列的一个
简称(不写也可以),“姓名”是要显示的文字,下一个参数是宽度,这里我们一共4列,所以第一列宽度设为控件宽度(ListView1.Width)的
1/4,第5个参数是对齐方式,其中第一列必须是左对齐的,其他列可以设置左右或居中对齐,第6个参数是图标索引,我们后面再讲,这里其中所有的参数都是
可省略的,一般写上显示的文字和宽度即可。ListView1.View是设置ListView控件的显示方式,一共四种,这里lvwReport是报表
形式显示,其他的我们后面再讲。FullRowSelect是指可否整行选取,Gridlines是否显示网格线,这些属性自己试下就知道了。

当然我们也可以用循环的方式来简化代码

Private Sub UserForm_Initialize()
Dim i
For i = 1 To 4
ListView1.ColumnHeaders.Add i, , Cells(1, i), ListView1.Width / 4
Next
ListView1.FullRowSelect = True
ListView1.View = lvwReport
ListView1.Gridlines = True
End Sub

对列加了个For循环而已,其实是完全相同的。

下面我们来看怎样向ListView控件中添加数据。两种方法,下面来看第一种

Private Sub CommandButton1_Click()
Dim itm As ListItem, i, List, li
ListView1.ListItems.Clear '清除数据
For i = 2 To 5
Set itm = ListView1.ListItems.Add '添加一个空行
itm.Text = Cells(i, 1) '添加第一列
itm.SubItems(1) = Cells(i, 2) '添加第二列
itm.SubItems(2) = Cells(i, 3)
itm.SubItems(3) = Cells(i, 4)
Next
End Sub

当然添加新数据之前要把原有数据先删除,用的是ListItems的Clear方法ListItem对象就是控件的行。先用ListItems的
Add方法添加一个空行,用变量itm来表示,下面就要向这个空行中添加数据,我们上面说过第一列和其他列的表示方法是不同的,第一列赋值要用Text,
之后各列用SubItems数组来赋值,第2列序号是1,第3列序号是2,依次类推。

下面来看添加数据的另一种方法,ListSubItems对象

' For i = 2 To 5
' Set List = ListView1.ListItems.Add(Text:=Cells(i, 1))
' Set li = List.ListSubItems.Add(Text:=Cells(i, 2)) 'subitems是个数组,Listsubitems是个对象集合
' Set li = List.ListSubItems.Add(Text:=Cells(i, 3))
' Set li = List.ListSubItems.Add(Text:=Cells(i, 4))
' Next

前面都一样,我只把For循环这段贴出来了,同样是用ListItems.Add新建一个空行,不同的是直接给其赋了一个值,这个值就是赋在第一列
的,之后又用List(刚添加的空行)的ListSubItems的Add方法,相当于在该行添加一个列,再赋值,有几列就添加用个
ListSubItems。ListSubItems和SubItems的区别在于前者是一个对象集合,既然是对象就有可以设置格式(可以和工作表的
Range对象类比),而后者仅仅是一个数组,因此也就不存在格式之类的属性了,所以如果需要给ListView控件改变格式就要用
ListSubItems对象。
提壶以壶9878
2017-11-10 · TA获得超过103个赞
知道小有建树答主
回答量:201
采纳率:50%
帮助的人:98.7万
展开全部
软件开发中最常用的有ArrayAdapter<T>, BaseAdapter, SimpleAdapter,今天我用一段代码向大家诠释如何使用ListView控件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式