admin 管理员组文章数量: 887021
2024年2月19日发(作者:嵌入式培训出来找不到工作)
VB6之ListView控件实现单选、多选、更新选定列内容
数据库编程中经常用到ListView控件实现选择后更新选定列内容的操作,通过该文档,读者可以更好的理解ListView控件的常用属性及方法。从而使数据库操作更加友好,直观。
很多读者在使用该控件的时候都会遇到第一列填充不了内容的情况。该情况是因为ListView控件的第一列(图中红色方框所示)和后面的列(图中蓝色方框所示)表示方法不一样。
红色方框部分用方法表示并添加。
蓝色方框部分用ms(i)方法表示并添加。起始索引为1 。
本文将详细讲述ListView1实现上图所示功能。
本文的数据库链接已经定义在标准模块中。具体代码如下:
Public Function cnn() As tion
Set cnn = New tion
"Provider=SQLOLEDB.1;Password=ldg730108;Persist Security
Info=True;User ID=ldg;Initial Catalog=ldg;Data Source=172.30.76.249"
End Function
一、将数据库内容添加到ListView1控件中
请注意设置ListView1的view、Checkboxs属性。Form_Load具体代码如下:
Private Sub Form_Load()
'设置ListView1的样式为报表样式
= lvwReport
'设置ListView1可以复选
oxes = True
'声明一个记录集
Dim rs As set
'设置一个新的记录集
Set rs = New set
'打开表wink
"select * from wink", cnn, adOpenKeyset, adLockOptimistic
'设置ListView1的列标题
Dim clmX As ColumnHeader
Set clmX = (, , "Id", / 6)
Set clmX = (, , "Name", / 6)
Set clmX = (, , "Sex", / 6)
Set clmX = (, , "Age", / 6)
Set clmX = (, , "Address", / 6)
Set clmX = (, , "Birth", / 6)
'将数据库内容添加到ListView1中
Dim itmX As ListItem
While Not
Set itmX = (, , ("id"))
If Not IsNull(rs!Name) Then
ms(1) = ("name")
End If
If Not IsNull(rs!sex) Then
ms(2) = ("sex")
End If
If Not IsNull(rs!age) Then
ms(3) = ("age")
End If
If Not IsNull(rs!address) Then
ms(4) = ("address")
End If
If Not IsNull(rs!birth) Then
ms(5) = ("birth")
End If
'移动到下一条记录。
xt
Wend
End Sub
二、实现单选功能
将选定的单元格内容输出到Text1控件中。请读者注意第一列表示方法为ems(i).SubItems(1)。
Private Sub Command1_Click()
'单选
For i = 1 To
'如果复选框打“√”则把打对号行的第一列内容显示在文本框中。
If ems(i).Checked = True Then
= ems(i).SubItems(1)
End If
Next
End Sub
三、实现全选功能
通过循环将所有ems(i).Checked属性设置为true。
Private Sub Command2_Click()
'循环至ListView1的总记录数
For i = 1 To
'全选
ems(i).Checked = True
Next
End Sub
四、实现全不选功能
通过循环将所有ems(i).Checked属性设置为false。
Private Sub Command3_Click()
'循环至ListView1的总记录数
For i = 1 To
'全不选
ems(i).Checked = False
Next
End Sub
五、实现更新选定列功能
重头戏来了。
通过循环将已经选择的内容放置在数组中。VB6中无可变数组,只好定义了一个100个元素的数组。读者可以根据自己的实际情况进行定义。但不要定义过大以减少系统资源消耗。
通过循环将选定的行的指定列进行更新数据库操作。该实例是将选定列的性别进行更新。读者可以根据自己的实际情况更新一列或若干列内容。
Private Sub Command4_Click()
'多选
'定义一个100个元素的一维数组
Dim tmpArry(100) As String
'循环获得第i行,第一列的内容
Dim j As Integer
j = -1
For i = 1 To
If ems(i).Checked Then
j = j + 1
tmpArry(j) = ems(i).SubItems(1)
End If
Next
'循环更新第i行,第一列内容
Dim rs2 As set
Set rs2 = New set
For k = 0 To j
"select * from wink where name = '" & tmpArry(k) & "'", cnn,
adOpenKeyset, adLockOptimistic
("sex") =
Next
'刷新ListView1控件中的内容
Call Form_Load
' 循环输出数组,测试用
' tmp = ""
' For k = 0 To j
' tmp = tmp & tmpArry(k) & ","
' Next
' = tmp
End Sub
总结:ListView控件功能十分丰富,可以设置按列标题进行排序,并且可以很好的设置隔行颜色等功能。是一个很好用的数据控件。本文中向控件ListView1添加数据方法较为繁琐,读者可以通过设置数据库字段内容不为空后直接循环添加,或者按照自己的思路进行添加。
版权声明:本文标题:VB6之ListView控件实现单选、多选、更新选定列内容(图例,源码,注释 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708304782h519011.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论