admin 管理员组

文章数量: 887021


2024年2月19日发(作者:微量元素化学符号)

百度文库 - 让每个人平等地提升自我!

listview控件可有4种不同的视图显示方法,跟“资源管理器”里的“查看”方式相似:(1)无图标;(2)小图标;(3)列表;(4)报表式。

使用哪种视图,可由该控件的view属性设置控制。

其中“报表”视图用来显示记录数据很适合。

listview控件包括listItem对象和ColumnHeader对象。

本人简单理解为:listItem对象看成数据行;ColumnHeader对象看成列标题。

listItem对象(行)有两部分:一部分是图标和简要描述的文本(第1列);另一部分是前者的子项文本信息(第2列,第3列......)。

而listItems即是对listItem对象集合(所有行)的引用。

故此,listItems(1) 可以表示为第1行;

listitems(1).text 返回第1行第1列的文本值;

listitems(1).subItem(1) 返回第1行第2列的文本值。

【 控件常用属性 】

[1]view属性

该属性有4个值可设定:

1---小图标视图显示

2---列表

3---报表

0---无图标(默认)

[2]AllowColumnReorder属性

值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列。

[3]Checkboxes属性

设置为.t.时,每一行数据前将显示一复选框。

[4]FlatScrollBar属性

设置为.f.时控件将显示滚动条。

[5]FullRowSelect属性

设置为.t.时可以整行地选择数据。

[6]GridLines属性

设置为.t.时控件将显示网格线。(只作用于“报表”视图)

[7]HideColumnHeaders属性

设置为.f.时,列标题可视,反之则不可视。

[8]HotTracking属性

设置为.t.时,鼠标所在行将以高亮度显示。

[9]Icons,SmallIcons属性

两者设置listview控件视图相关联的ImageList控件中的图片。

Icons指明视图为大图标时的关联;

SmallIcons指明视图为小图标时的关联。

1

百度文库 - 让每个人平等地提升自我!

[10]LabelWrap属性

设置为.t.时,文本标签超出列宽时可换行。

[11]SelectedItem属性

返回对所选ListItem对象(行)的引用。

[12]Sorted属性

当值为.t.时,列表按字母排序。

[13]Picture属性

指定控件的背景图片,此属性在控件自带属性设置框里设置。

*****************************************************************

【 控件常用方法程序 】

[1]Add方法

添加listItem对象(行)到控件中。

语法格式:

控件ListItems集合.add(index,key,text,icon,smallIcon)

[2]FindItem方法

查找并返回对控件中listItem对象的引用。

语法格式:

控件名.FindItem(string,value,index,match)

******************************************************************

新建一表单,在表单里拖出一个ListView控件和一个ImageList控件。

选中ListView控件,单击右键,选择“ListViewCtrl Properties”,在General页面框中选中下列复选框:

LabelWrap:文本可换行

Checkboxes:显示复选框

FullRowSelect:整行选定

清除FlatScrollBar的选定,控件将显示滚动条。

**************************************************************

控件 name属性

ListView view1

ImageList Image1

***************************************************************

在表单的Init事件中加入下列代码:

&&&&将ImageList控件图片赋予Listview控件&&&&

=

cons=

2

百度文库 - 让每个人平等地提升自我!

****************************************************************

在listview控件init事件中加入下列代码:

&&&初始化ListView控件&&&&

&&设置显示为报表视图

=3

&&添加和设置列标

store (,"l11","序号",/7) to clm1

store (,"l12","物资编号",/4) to clm2

store (,"l13","存货名称",/4) to clm3

store (,"l14","规格",/4) to clm4

store (,"l15","计量单位",/8) to clm5

store (,"l16","请购数量",/4) to clm6

store (,"l17","使用日期",/4) to clm7

store (,"l18","请购用途",/4) to clm8

cking=.t. &&鼠标停留行高亮度显示

******************************************************************

将数据表添加到listview控件中显示:

新建一表单方法程序 refresh_grid,可随时调用刷新数据。

在其中加入下列代码:

L1=1

&&清除数据

sele 请购表

scan

&&添加listItem对象第1列图标和文本。

store (,,序号,,1) to bbb

&&添加第列文本

store alltrim(物资编号) to ms(1)

store alltrim(存货名称) to ms(2)

store alltrim(规格) to ms(3)

store alltrim(计量单位) to ms(4)

store 请购数量 to ms(5)

store 使用日期 to ms(6)

store alltrim(请购用途) to ms(7)

endscan

注:若字段值为.null.时,添加时将出现错误提示。

3

百度文库 - 让每个人平等地提升自我!

请自行设置用函数加以判别。为.null.时可以空值添加。

************************************************

如何返回选定值:

L1=1

&&返回选定行第1列文本值

&&返回选定行的位置

ems(x).subItems(y) &&返回第x行,第y+1列文本值

*****

如何用用命令设置复选框状态:

ems(x).checked=.t.

&&第x行复选框选定

******************************************

选定复选框时发生的事件itemcheck:

LPARAMETERS item

if d=.t.&&判定当复选框选中

要执行的语句

else

要执行的语句

endif

&&清除所有数据

&&清除选定行

L1=1

()

得知所有行的总数:

4

百度文库 - 让每个人平等地提升自我!

一个关于VB listview控件用法

2008年09月13日 星期六 下午 09:14

ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7)

ColumnHeader对象是ListView控件中包含标头文字的项目。利用ColumnHeader对象,用户可以:

▲单击对象触发ColumnClick事件并根据数据项目将项目排序。

▲拖动对象的右边框来调整列宽度。

▲在报表视图中隐藏ColumnHeader对象。

ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。

ColumnHeader对象的SubItemIndex属性

该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。第一列的列标头SubItemIndex属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。列标头数目取决于子项目数目。列标头数目总是比子项目数目多1。

在设计时可以利用属性页的“列首”选项卡将ColumnHeader对象添加到ListView控件中,在运行时则用Add方法添加。

ColumnHeader对象的Add方法

该方法的使用与前面那些控件基本相似,就不再介绍了。

(index,key,text,width,alignment)

ListItem对象是指控件中的一行(不包含标头行)的所有内容。它也可包含文本和图片,但是要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件。

5

百度文库 - 让每个人平等地提升自我!

ListItem对象的SubItems属性

返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。

ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。

ListItem对象的Add方法

该方法添加ListItem对象到ListView控件的ListItems集合中并返回对新创建对象的引用。

它的语法如下:

(index,key,text,icon,smallIcon)

ListView控件的View属性

ListView控件可使用四种不同视图显示项目,这可以用View属性来确定。该属性返回或设置ListView控件中ListItem对象的外观。

ListView控件的SortOrder,SortKey和Sorted属性

控件中的ListItem对象可以按要求进行排序,与排序有关的属性是SortOrder,Sorted和SortKey属性。

SortOrder属性返回或设置一个值,此值决定ListView控件中的ListItem对象以升序或降序排序。

SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序。

Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序的值。

下面的代码说明了如何创建ColumnHeaders和ListItem对象,SubItemIndex和SubItem属性的使用方法以及如何排序。

6

百度文库 - 让每个人平等地提升自我!

Private Sub Form_load()

'确保ListView控件的view属性为报表视图。

=lvwReport

'添加三列。

,"Name","姓名"

,"Sex","性别"

,"Age","年龄"

'向控件添加ListItem对象。

Dim itmX As ListItem

'添加column1的名称。

Set itmX=(1,"ZL","张力")

'使用SubItemIndex将SubItem与正确的ColumnHeader关联。使用关键字("Sex")指定正确的ColumnHeader。

ms(Headers("Sex").SubItemIndex)="男"

'使用ColumnHeader关键字将SubItems字符串与

'正确的ColumnHeader关联。

ms(Headers("Age").SubItemIndex)="19"

Set itmX=(1,"LF","李芳")

ms(Headers("Sex").SubItemIndex)="男"

ms(Headers("Age").SubItemIndex)="22"

Set itmX=(1,"WW","王伟")

ms(Headers("Sex").SubItemIndex)="男"

ms(Headers("Age").SubItemIndex)="24"

7

百度文库 - 让每个人平等地提升自我!

End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As Header)

Select Case

Case "Sex":y=1

der=lvwAscending

=True

Case "Age":y=2

der=lvwAscending

=True

End Select

End Sub

(1).SubItems(1)=Text1(1).text

式子左边的四个单词是什么意思?怎么会有三个英文句点?左边的含义是什么?

Sub form_load()

With Lvw

. , , "asp"

. , , "html"

. , , "vbs"

. , , "css"

End With

Dim j%

j = 2

8

百度文库 - 让每个人平等地提升自我!

ems(j).Selected = True

End Sub

测试的时候不要在form_load加载listbox增加项目.不然运行的时候会看不出效果。

晕!Selected是指LisT前面那个小框框(复选框)!

不过好像真的不能自动选择..

因为平时我不怎么用这个东西..

反正Selected=True是不能的!

ems(2).Selected = True 表示第2行被选择(高亮);

ems(2).Checked = True 表示在oxes为True时第2行前面的小框被钩选。

listview控件可有4种不同的视图显示方法,跟“资源管理器”里的“查看”方式相似:(1)无图标;(2)小图标;(3)列表;(4)报表式。

使用哪种视图,可由该控件的view属性设置控制。

其中“报表”视图用来显示记录数据很适合。

listview控件包括listItem对象和ColumnHeader对象。

本人简单理解为:listItem对象看成数据行;ColumnHeader对象看成列标题。

listItem对象(行)有两部分:一部分是图标和简要描述的文本(第1列);另一部分是前者的子项文本信息(第2列,第3列......)。

而listItems即是对listItem对象集合(所有行)的引用。

故此,listItems(1) 可以表示为第1行;

listitems(1).text 返回第1行第1列的文本值;

listitems(1).subItem(1) 返回第1行第2列的文本值。

【 控件常用属性 】

[1]view属性

该属性有4个值可设定:

1---小图标视图显示

2---列表

3---报表

0---无图标(默认)

[2]AllowColumnReorder属性

9

百度文库 - 让每个人平等地提升自我!

值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列。

[3]Checkboxes属性

设置为.t.时,每一行数据前将显示一复选框。

[4]FlatScrollBar属性

设置为.f.时控件将显示滚动条。

[5]FullRowSelect属性

设置为.t.时可以整行地选择数据。

[6]GridLines属性

设置为.t.时控件将显示网格线。(只作用于“报表”视图)

[7]HideColumnHeaders属性

设置为.f.时,列标题可视,反之则不可视。

[8]HotTracking属性

设置为.t.时,鼠标所在行将以高亮度显示。

[9]Icons,SmallIcons属性

两者设置listview控件视图相关联的ImageList控件中的图片。

Icons指明视图为大图标时的关联;

SmallIcons指明视图为小图标时的关联。

[10]LabelWrap属性

设置为.t.时,文本标签超出列宽时可换行。

[11]SelectedItem属性

返回对所选ListItem对象(行)的引用。

[12]Sorted属性

当值为.t.时,列表按字母排序。

[13]Picture属性

指定控件的背景图片,此属性在控件自带属性设置框里设置。

*****************************************************************

【 控件常用方法程序 】

[1]Add方法

添加listItem对象(行)到控件中。

语法格式:

控件ListItems集合.add(index,key,text,icon,smallIcon)

[2]FindItem方法

查找并返回对控件中listItem对象的引用。

语法格式:

控件名.FindItem(string,value,index,match)

******************************************************************

新建一表单,在表单里拖出一个ListView控件和一个ImageList控件。

10

百度文库 - 让每个人平等地提升自我!

选中ListView控件,单击右键,选择“ListViewCtrl Properties”,在General页面框中选中下列复选框:

LabelWrap:文本可换行

Checkboxes:显示复选框

FullRowSelect:整行选定

清除FlatScrollBar的选定,控件将显示滚动条。

**************************************************************

控件 name属性

ListView view1

ImageList Image1

***************************************************************

在表单的Init事件中加入下列代码:

&&&&将ImageList控件图片赋予Listview控件&&&&

=

cons=

****************************************************************

在listview控件init事件中加入下列代码:

&&&初始化ListView控件&&&&

&&设置显示为报表视图

=3

&&添加和设置列标

store (,"l11","序号",/7) to clm1

store (,"l12","物资编号",/4) to clm2

store (,"l13","存货名称",/4) to clm3

store (,"l14","规格",/4) to clm4

store (,"l15","计量单位",/8) to clm5

11

百度文库 - 让每个人平等地提升自我!

store (,"l16","请购数量",/4) to clm6

store (,"l17","使用日期",/4) to clm7

store (,"l18","请购用途",/4) to clm8

cking=.t. &&鼠标停留行高亮度显示

******************************************************************

将数据表添加到listview控件中显示:

新建一表单方法程序 refresh_grid,可随时调用刷新数据。

在其中加入下列代码:

L1=1

&&清除数据

sele 请购表

scan

&&添加listItem对象第1列图标和文本。

store (,,序号,,1) to bbb

&&添加第列文本

store alltrim(物资编号) to ms(1)

store alltrim(存货名称) to ms(2)

store alltrim(规格) to ms(3)

store alltrim(计量单位) to ms(4)

store 请购数量 to ms(5)

store 使用日期 to ms(6)

store alltrim(请购用途) to ms(7)

endscan

注:若字段值为.null.时,添加时将出现错误提示。

请自行设置用函数加以判别。为.null.时可以空值添加。

************************************************

如何返回选定值:

L1=1

&&返回选定行第1列文本值

&&返回选定行的位置

ems(x).subItems(y) &&返回第x行,第y+1列文本值

12

百度文库 - 让每个人平等地提升自我!

*****

如何用用命令设置复选框状态:

ems(x).checked=.t.

&&第x行复选框选定

******************************************

选定复选框时发生的事件itemcheck:

LPARAMETERS item

if d=.t.&&判定当复选框选中

要执行的语句

else

要执行的语句

endif

&&清除所有数据

&&清除选定行

L1=1

()

得知所有行的总数:

==================================================================================================

Private Sub Command1_Click()

, , "列1"

, , "列2"

, , "列3"

Dim i As Integer

For i = 1 To 9

, , "列1的内容"

ems(i).SubItems(1) = "列" & 9 - i & "的内容"

ems(i).SubItems(2) = "列3的内容"

13

百度文库 - 让每个人平等地提升自我!

Next

End Sub

Private Sub Form_Load()

= lvwReport

= True '这一句至关重要

End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader) '这个过程单击时排序

y = - 1

End Sub

===============================================================

Private Sub Form_Load()

= 3

'wSelect = True '这个功能是选中全行,在6.0中使用

, "a", "No", 200

, "b", "问题", 1500

, "c", "状态", 900

, "d", "回答数", 900

End Sub

Private Sub Command110_Click()

Dim i

For i = 0 To unt - 1

, "a" & i, CStr(i + 1) '将数目添加到ListView1第一列

ems("a" & i).SubItems(1) = (i) '将list002添加到ListView1第二列

ems("a" & i).SubItems(2) = Space(1) & (i) '将list5加到ListView1第三列

ems("a" & i).SubItems(3) = Space(1) & (i) '将list7加到ListView1第四列

Next

End Sub

14


本文标签: 控件 对象 属性 设置 显示