SortKey、SortOrder、Sorted 属性、ColumnClick 事件示例
本示例将三个 ColumnHeader 对象添加到 ListView 控件中,并将 Biblio.mdb 数据库的 Publishers 记录植入控件。一个由两个 OptionButton 控件组成的数组提供将记录排序的两个选项。单击 ColumnHeader 将根据由 OptionButtons 决定的 SortOrder 属性将 ListView 控件排序。要试用此例,请将一个 ListView 和一个由 OptionButton 控件组成的控件数组放置在窗体上,并将代码粘贴到窗体的声明部分。运行示例并单击 ColumnHeaders 进行排序,单击 OptionButton 来切换 SortOrder 属性。注意 必须使用“工具”菜单的“引用”命令添加 Microsoft DAO 3.5 对象库的引用,否则示例无法运行。Private Sub Option1_Click(Index as Integer)
'这些 OptionButtons 提供两种选择:升序(索引 0),
'和降序(索引 1)。请单击其一
'为 ListView 控件设置 SortOrder。
ListView1.SortOrder = Index
ListView1.Sorted = True '将列表排序。
End SubPrivate Sub Form_Load()
'为 ColumnHeader 对象创建对象变量。
Dim clmX As ColumnHeader
'添加 ColumnHeaders。列宽度等于控件宽度
'除以 ColumnHeader 对象的数目。
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Company", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Address", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Phone", ListView1.Width / 3) ListView1.BorderStyle = ccFixedSingle '设置 BorderStyle 属性。
ListView1.View = lvwReport '设置 View 属性为报表型。 '用 SortOrder 选项标注 OptionButton 控件。
Option1(0).Caption = "Ascending (A-Z)"
Option1(1).Caption = "Descending (Z-A)"
ListView1.SortOrder = lvwAscending ' Sort ascending. '为数据访问对象创建对象变量。
Dim myDb As Database, myRs As Recordset
'设置数据库为 BIBLIO.MDB 数据库。
Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
'设置 recordset 为 Publishers 表。
Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)
'为添加 ListItem 对象创建变量。
Dim itmX As ListItem '若当前记录不是最后一条记录,则添加 ListItem 对象。
'ListItem 对象的文本使用 Name 字段。
'ListItem 对象的 subitem(1) 使用 Address 字段。
'ListItem 对象的 subitem(2) 使用 Phone 字段。 While Not myRs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name)) '若 Address 字段不为空,则设置 subitem 1 为此字段。
If Not IsNull(myRs!Address) Then
itmX.SubItems(1) = CStr(myRs!Address) 'Address 字段。
End If '若 Phone 字段不为空,则设置 subitem 2 为此字段。
If Not IsNull(myRs!Telephone) Then
itmX.SubItems(2) = myRs!Telephone 'Phone 字段。
End If myRs.MoveNext '移动到下一条记录。
Wend
End SubPrivate Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
'单击 ColumnHeader 对象时,将根据
'那一列的子项目把 ListView 控件排序。
'设置 SortKey 为 ColumnHeader 的索引值减 1
ListView1.SortKey = ColumnHeader.Index - 1
'设置 Sorted 为 True 以将列表排序。
ListView1.Sorted = True
End Sub
本示例将三个 ColumnHeader 对象添加到 ListView 控件中,并将 Biblio.mdb 数据库的 Publishers 记录植入控件。一个由两个 OptionButton 控件组成的数组提供将记录排序的两个选项。单击 ColumnHeader 将根据由 OptionButtons 决定的 SortOrder 属性将 ListView 控件排序。要试用此例,请将一个 ListView 和一个由 OptionButton 控件组成的控件数组放置在窗体上,并将代码粘贴到窗体的声明部分。运行示例并单击 ColumnHeaders 进行排序,单击 OptionButton 来切换 SortOrder 属性。注意 必须使用“工具”菜单的“引用”命令添加 Microsoft DAO 3.5 对象库的引用,否则示例无法运行。Private Sub Option1_Click(Index as Integer)
'这些 OptionButtons 提供两种选择:升序(索引 0),
'和降序(索引 1)。请单击其一
'为 ListView 控件设置 SortOrder。
ListView1.SortOrder = Index
ListView1.Sorted = True '将列表排序。
End SubPrivate Sub Form_Load()
'为 ColumnHeader 对象创建对象变量。
Dim clmX As ColumnHeader
'添加 ColumnHeaders。列宽度等于控件宽度
'除以 ColumnHeader 对象的数目。
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Company", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Address", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Phone", ListView1.Width / 3) ListView1.BorderStyle = ccFixedSingle '设置 BorderStyle 属性。
ListView1.View = lvwReport '设置 View 属性为报表型。 '用 SortOrder 选项标注 OptionButton 控件。
Option1(0).Caption = "Ascending (A-Z)"
Option1(1).Caption = "Descending (Z-A)"
ListView1.SortOrder = lvwAscending ' Sort ascending. '为数据访问对象创建对象变量。
Dim myDb As Database, myRs As Recordset
'设置数据库为 BIBLIO.MDB 数据库。
Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
'设置 recordset 为 Publishers 表。
Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)
'为添加 ListItem 对象创建变量。
Dim itmX As ListItem '若当前记录不是最后一条记录,则添加 ListItem 对象。
'ListItem 对象的文本使用 Name 字段。
'ListItem 对象的 subitem(1) 使用 Address 字段。
'ListItem 对象的 subitem(2) 使用 Phone 字段。 While Not myRs.EOF
Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name)) '若 Address 字段不为空,则设置 subitem 1 为此字段。
If Not IsNull(myRs!Address) Then
itmX.SubItems(1) = CStr(myRs!Address) 'Address 字段。
End If '若 Phone 字段不为空,则设置 subitem 2 为此字段。
If Not IsNull(myRs!Telephone) Then
itmX.SubItems(2) = myRs!Telephone 'Phone 字段。
End If myRs.MoveNext '移动到下一条记录。
Wend
End SubPrivate Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
'单击 ColumnHeader 对象时,将根据
'那一列的子项目把 ListView 控件排序。
'设置 SortKey 为 ColumnHeader 的索引值减 1
ListView1.SortKey = ColumnHeader.Index - 1
'设置 Sorted 为 True 以将列表排序。
ListView1.Sorted = True
End Sub
解决方案 »
- 求VBExploer的右键菜单修改
- 〓紧急求助〓 WebBrowser控件 如何判断网页是否完全打开....解决后马上给分....十分感谢
- 如何让VB写的应用程序不能重复运行?
- 如何在vb中实现位操作(位求反,位异或)??
- 那位高手知道用VB怎样控制两张显卡的显示内容,如点歌系统,电视显示MTV显示器显示点歌目录
- Bcbo为Form 2.0 的Combobox,如何定义其过程?
- 怎样用VB连接DBF文件,VB总是报ISAM未安装,或找不到,请高手指教。
- 为什么VB程序员的工资要比VC和JAVA的低很多?应该吗?
- 如何在程序中给access数据库增加一张表(table),在线等待!
- 哪个高手会用wpe啊?
- 各位大虾,帮我看看!
- 请教高手:如何当一个程序被反复调用时利用command$?
5.10
-7.11
10.03
1.01
-2.23
4.11
-5.0
数值可用format。