|
楼主 |
发表于 2009-4-30 16:38
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
第8部分 控件与用户窗体
技巧131 使用Listview控件
131-3 调整Listview控件的行距
在使用Listview控件显示数据列表时,行距是由Listview控件所设置的字体大小决定的,无法自定义行距,即使调整了字体大小,行距还是很近。
如果需要自定义Listview控件的行距,可以在窗体中添加一个ImageList控件,在ImageList控件中导入一张大小合适的空白图片,然后指定Listview控件的SmallIcons属性为ImageList控件中的图片,代码如下:- #001 Private Sub UserForm_Initialize()
- #002 Dim Itm As ListItem
- #003 Dim r As Integer
- #004 Dim c As Integer
- #005 Dim Img As ListImage
- #006 With ListView1
- #007 .ColumnHeaders.Add , , "人员编号 ", 50, 0
- #008 .ColumnHeaders.Add , , "技能工资 ", 50, 1
- #009 .ColumnHeaders.Add , , "岗位工资 ", 50, 1
- #010 .ColumnHeaders.Add , , "工龄工资 ", 50, 1
- #011 .ColumnHeaders.Add , , "浮动工资 ", 50, 1
- #012 .ColumnHeaders.Add , , "其他 ", 50, 1
- #013 .ColumnHeaders.Add , , "应发合计", 50, 1
- #014 .View = lvwReport
- #015 .Gridlines = True
- #016 .FullRowSelect = True
- #017 Set Img = ImageList1.ListImages.Add(, , LoadPicture(ThisWorkbook.Path & "" & "1×25.bmp"))
- #018 .SmallIcons = ImageList1
- #019 For r = 2 To Sheet1.[A65536].End(xlUp).Row - 1
- #020 Set Itm = .ListItems.Add()
- #021 Itm.Text = Space(2) & Sheet1.Cells(r, 1)
- #022 For c = 1 To 6
- #023 Itm.SubItems(c) = Format(Sheet1.Cells(r, c + 1), "##,#,0.00")
- #024 Next
- #025 Next
- #026 End With
- #027 Set Itm = Nothing
- #028 Set Img = Nothing
- #029 End Sub
复制代码 代码解析:
用户窗体的Initialize事件过程,在窗体显示时将工作表中数据显示在Listview控件中并调整Listview控件的行距。
第17行代码使用Add方法在ImageList控件中添加图片。ImageList控件是一个向其他控件提供图像的资料中心,它包含了一组ListImage对象即一组图像的集合,该集合中的每个对象都可以通过其索引或关键字被其他控件所引用,但控件本身并不能单独使用。
在运行时给ImageList控件添加图片需要使用Add方法,语法如下:
Add(index,key,picture)
参数index是可选的,整数,指定要插入的ListImage对象的位置。如果没有指定index,ListImage对象将被添加到ListImages集合的末尾。
参数key是可选的,用来标识ListImage对象的唯一字符串。
参数picture是必需的,指定欲添加到集合中的图片。
也可以在设计时在ImageList控件中添加图片,这样就无需在文件夹中保留图片文件。在VBE中选择ImageList控件属性页中的“自定义”,在显示的“属性页”对话框中插入图片,如图所示。
第18行代码,指定Listview控件的SmallIcons属性为ImageList控件中的图片,使用图片来调整行距。
运行窗体,Listview控件显示工作表中的内容,调整Listview控件的行距,如图所示。
[ 本帖最后由 yuanzhuping 于 2009-4-30 16:40 编辑 ] |
|