VB6之ListView控件实现单选、多选、更新选定列内容(图例,源码,注释)
更新时间:2023-12-16 08:28:01 阅读量: 教育文库 文档下载
VB6之ListView控件实现单选、多选、更新选定列内容
数据库编程中经常用到ListView控件实现选择后更新选定列内容的操作,通过该文档,读者可以更好的理解ListView控件的常用属性及方法。从而使数据库操作更加友好,直观。
很多读者在使用该控件的时候都会遇到第一列填充不了内容的情况。该情况是因为ListView控件的第一列(图中红色方框所示)和后面的列(图中蓝色方框所示)表示方法不一样。
红色方框部分用ListView1.ListItems.Add方法表示并添加。 蓝色方框部分用itmX.SubItems(i)方法表示并添加。起始索引为1 。
本文将详细讲述ListView1实现上图所示功能。
本文的数据库链接已经定义在标准模块中。具体代码如下:
Public Function cnn() As ADODB.Connection Set cnn = New ADODB.Connection
cnn.Open \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的样式为报表样式 ListView1.View = lvwReport '设置ListView1可以复选
ListView1.Checkboxes = True
'声明一个记录集
Dim rs As ADODB.Recordset '设置一个新的记录集
Set rs = New ADODB.Recordset '打开表wink
rs.Open \
'设置ListView1的列标题 Dim clmX As ColumnHeader
Set clmX = ListView1.ColumnHeaders.Add(, , \ Set clmX = ListView1.ColumnHeaders.Add(, , \ Set clmX = ListView1.ColumnHeaders.Add(, , \ Set clmX = ListView1.ColumnHeaders.Add(, , \
Set clmX = ListView1.ColumnHeaders.Add(, , \ Set clmX = ListView1.ColumnHeaders.Add(, , \
'将数据库内容添加到ListView1中 Dim itmX As ListItem While Not rs.EOF
Set itmX = ListView1.ListItems.Add(, , rs.Fields(\
If Not IsNull(rs!Name) Then
itmX.SubItems(1) = rs.Fields(\ End If
If Not IsNull(rs!sex) Then
itmX.SubItems(2) = rs.Fields(\ End If
If Not IsNull(rs!age) Then
itmX.SubItems(3) = rs.Fields(\ End If
If Not IsNull(rs!address) Then
itmX.SubItems(4) = rs.Fields(\ End If
If Not IsNull(rs!birth) Then
itmX.SubItems(5) = rs.Fields(\ End If
'移动到下一条记录。 rs.MoveNext Wend End Sub
二、实现单选功能
将选定的单元格内容输出到Text1控件中。请读者注意第一列表示方法为ListView1.ListItems(i).SubItems(1)。
Private Sub Command1_Click() '单选
For i = 1 To ListView1.ListItems.Count
'如果复选框打“√”则把打对号行的第一列内容显示在文本框中。 If ListView1.ListItems(i).Checked = True Then Text1.Text = ListView1.ListItems(i).SubItems(1) End If Next End Sub
三、实现全选功能
通过循环将所有ListView1.ListItems(i).Checked属性设置为true。
Private Sub Command2_Click() '循环至ListView1的总记录数
For i = 1 To ListView1.ListItems.Count '全选
ListView1.ListItems(i).Checked = True Next End Sub
四、实现全不选功能
通过循环将所有ListView1.ListItems(i).Checked属性设置为false。
Private Sub Command3_Click() '循环至ListView1的总记录数
For i = 1 To ListView1.ListItems.Count '全不选
ListView1.ListItems(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 ListView1.ListItems.Count
If ListView1.ListItems(i).Checked Then j = j + 1
tmpArry(j) = ListView1.ListItems(i).SubItems(1) End If Next
'循环更新第i行,第一列内容 Dim rs2 As ADODB.Recordset Set rs2 = New ADODB.Recordset For k = 0 To j
rs2.Open \adOpenKeyset, adLockOptimistic
rs2.Fields(\ rs2.Update rs2.Close Next
'刷新ListView1控件中的内容 ListView1.ListItems.Clear Call Form_Load
' 循环输出数组,测试用 ' tmp = \
' For k = 0 To j
' tmp = tmp & tmpArry(k) & \' Next
' Text2.Text = tmp End Sub
总结:ListView控件功能十分丰富,可以设置按列标题进行排序,并且可以很好的设置隔行颜色等功能。是一个很好用的数据控件。本文中向控件ListView1添加数据方法较为繁琐,读者可以通过设置数据库字段内容不为空后直接循环添加,或者按照自己的思路进行添加。
正在阅读:
VB6之ListView控件实现单选、多选、更新选定列内容(图例,源码,注释)12-16
关于网络的调查问卷08-24
餐饮服务员转正申请书02-24
2022建筑安全教育心得体会04-10
超齐全的奶茶制作手册01-07
三行情书大赛活动策划04-01
江大工程材料练习题四11-27
财务分析练习题03-17
三、施工进度计划和各阶段进度的保证措施03-28
三上作文我来编童话批改评语03-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 注释
- 控件
- 选定
- 源码
- ListView
- 图例
- 实现
- 更新
- 内容
- VB6