现在的位置: 首页 > 综合 > 正文

VBA中填充Listview

2013年08月26日 ⁄ 综合 ⁄ 共 1677字 ⁄ 字号 评论关闭

1、在Listview控件中,用ColumnHeaders对象来操作列,而添加新的列可以用ColumnHeaders对象的ADD方法。具体如下:

ListView1.ColumnHeaders.Add 序号,唯一的字符串标识,列标显示文字,列宽,列的内容对齐方式,所使用的图标序号。

对齐方式有:lvwColumnLeft 、 lvwColumnCenter 、lvwColumnRight                                                          

其中第1列只能左对齐,而不能采取其他对齐方式

2、Listview控件的View 属性决定着它的显示的方式,具体如下:

ListView1.View = lvwIcon '图标显示

ListView1.View = lvwSmallIcon '小图标显示

ListView1.View = lvwList '列表显示

ListView1.View = lvwReport '报表显示

3、SelectedItem属性即是指当前选取的记录

4、清空listview控件中的内容:ListView1.ListItems.Clear

显示数据表内容:
Private Sub UserForm_Initialize()

With ListView1                           '初始化listview
    .ColumnHeaders.Add , , "学号", 60, lvwColumnLeft
    .ColumnHeaders.Add , , "姓名", 60, lvwColumnCenter
    .ColumnHeaders.Add , , "班级", 70, lvwColumnCenter
    .View = lvwReport                                    '以报表的格式显示
    .LabelEdit = lvwManual                       '使内容不可编辑
End With

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset

    Set cn = New ADODB.Connection        '连接数据库
    Set rs = New ADODB.Recordset
    cn.Open "provider=microsoft.jet.oledb.4.0;data source=D:/db1.mdb"
    rs.Open "student", cn, adOpenKeyset, adLockBatchOptimistic      '数据表student
    Do While Not rs.EOF
        With ListView1.ListItems.Add()      '添加记录
            .Text = rs.Fields("stu_num")                      '添加第一列内容
            .SubItems(1) = rs.Fields("stu_name")               '添加第二列内容
            .SubItems(2) = rs.Fields("stu_class")               '添加第三列内容
        End With
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    cn.Close
End Sub

读取listview选择的内容:

将选中的内容分别显示在UserForm1的文本框中
With UserForm1
    .stu_num.Value = ListView1.SelectedItem.Text         '学号
    .stu_name.Text = ListView1.SelectedItem.SubItems(1)     '姓名
    .stu_class.Text = ListView1.SelectedItem.SubItems(2)     '班级
End With

抱歉!评论已关闭.