clistctrl控件最后插入在后面_VBA学习笔记59-2: listview控件

9d12779cb7b71dca00cc6cd84780797f.png

学习资源:《Excel VBA从入门到进阶》第59集 by兰色幻想


二、显示图标

刚开始就又遇到个问题,点击VBA控件Imagelist的自定义属性点击后出现如下错误:“类未注册。查找具有以下CLSID的对象:{7ebdaae2-8120-11cf-899f-00aa00688b10}。

解决方法是下载Msstkprp.dll并注册,具体操作见以下两个链接:

Excel excelvba问题-ExcelVBA程序开发-ExcelHome技术论坛 -​club.excelhome.net ImageList控件点自定义后提示类未注册 - Excel VBA开发 - Excel精英培训网 - Powered by Discuz!​www.excelpx.com

解决完问题,继续学习,本篇显示图标,在上一篇设置列标题ColumnHeaders时,讲到了六个参数,最后一个是显示的图标。

listitem1.ColumnHeaders.Add 列数,key(一列的唯一标识),标题,宽度,对齐方式,显示的图标
  1. Imagelist控件的设置

要在Listview显示图标,首先我们要插入Imagelist控件。

在工具箱没有,去到附加控件找到Mircosoft ImageList Control 6.0(SP6), 并勾选确认。随后就能在工具箱看到了,我们选中它,并在窗体中建立一个。

610e2bf411af6d3d6f04b0b067b58f46.png

选中窗体Imagelist控件,在属性中双击自定义行,设置图标的大小。

5b1196ca5ce8a8210dbece5c0705c67b.png

d8668198b73e9a1d6e00536fa6556fb0.png
选择custom自定义,然后输入高和宽的值

接下来选images,选择插入图片Insert Picture。它能选择的图片格式似乎很少,PNG的图片也识别不了,而ipeg格式的图标图也不好找,所以我用了看山的图来展示一下。(注意插入的图片大小不要太大)

图标的提取还要借助ImageList控件。图片加载到ImageList后会有序号(Index),可以用序号来表示图片。也可以手动改序号。

711c4dd11b2885f8b5cfa21897bc5c6a.png

2. 提取图片

图标、小图标、列标题图标都从ImageList控件取,在程序的最开始写。

Icons属性(普通大小图标)

SmallIcons(小图标)

ColumnHeaderIcons属性(标题图标)

ListView1.Icons = ImageList1 '设置图标从imagelist中提取图片
ListView1.SmallIcons = ImageList1 '小图标
ListView1.ColumnHeaderIcons = ImageList1 '列标题图标

3. 设置列标题的第六个参数

listitem1.ColumnHeaders.Add 列数,key(一列的唯一标识),标题,宽度,对齐方式,显示的图标

最后显示的图标,可以直接写图标的索引值。例:

ListView1.ColumnHeaders.Add 1, , "QQ", ListView1.Width / 3, , 1 '列显示图标,编号1
ListView1.ColumnHeaders.Add 2, , "昵称", ListView1.Width / 3, lvwColumnCenter, 2
ListView1.ColumnHeaders.Add 3, , "地区", ListView1.Width / 3, , 3

4. 大图标和小图标

上面说了列标题的图标,是大图片,还可以在内容行显示小图标。(下一篇再细讲)

For i = 2 To 5
    Set ITM = ListView1.ListItems.Add()
    ITM.Text = Cells(i, 1)
    ITM.SubItems(1) = Cells(i, 2)
    ITM.SubItems(2) = Cells(i, 3)
    ITM.SmallIcon = 4 '(小图标,在小图标视图下显示的图标)
Next i

bf026d19f6f7b599e2ef2d6adca14549.png

汇总代码:

Private Sub UserForm_Initialize()
Dim i%
Dim ITM As ListItem
ListView1.Icons = ImageList1 '设置图标从imagelist中提取图片
ListView1.SmallIcons = ImageList1 '小图标
ListView1.ColumnHeaderIcons = ImageList1 '列标题图标

ListView1.ColumnHeaders.Add 1, , "QQ", ListView1.Width / 3, , 1 '列显示图标,编号1
ListView1.ColumnHeaders.Add 2, , "昵称", ListView1.Width / 3, lvwColumnCenter, 2
ListView1.ColumnHeaders.Add 3, , "地区", ListView1.Width / 3, , 3

ListView1.View = lvwReport
ListView1.Gridlines = True

For i = 2 To 5
    Set ITM = ListView1.ListItems.Add()
    ITM.Text = Cells(i, 1)
    ITM.SubItems(1) = Cells(i, 2)
    ITM.SubItems(2) = Cells(i, 3)
    ITM.SmallIcon = 4 '(小图标,在小图标视图下显示的图标)
Next i

End Sub

三、视图模式

我们之前所用到的视图模式一直是报表模式:

ListView1.View = lvwReport

其实除了报表模式,还有三种视图模式:图标视图lvwIcon、小图标视图vwSmallIcon、列表视图lvwSmallIcon。效果如下所示,以后能按需使用。

2cf10c0958d4b7c03b2ce3661945c423.png

e4b94d05843e3c8c0674b468b64325f7.png

aaf0da1c6b8f477392319ba5e42f1c1f.png

96110b5348f679062b3c231e683119a4.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值