Vba中Listview控件隔行换色的三种实现方式

本文介绍了VBA中ListView控件实现隔行换色的三种常见方法:1) 利用ChartObjects对象添加不同颜色的shape;2) 使用InkPicture控件绘制彩色条纹;3) 通过调用WinAPI进行控件绘图。每种方法都有其独特之处,可供开发者根据需求选择。
摘要由CSDN通过智能技术生成

网上的实现方法大多是这三种:

        1、先在PictureBox控件里画图,之后将其加载到Listview中
        2、给单元格/Shape添加颜色后,复制Range和Shapes对象给剪贴板,然后保存成图片,需要WinAPI
        3、对ListItem子类化后进行重绘。这是原来Vb用的方法,vba里貌似没人用

下面的方法1、2与上面的方法2相似,方法3即上面的方法3。当然还可以通过调用整个控件hdc在内存中作图,但和方法3一样需要调用WinAPI

1、创建ChartObjects对象,并在里面添加不同颜色的shape

Sub SetLvBColor(Lv As ListView, Count&, Optional BColor& = &HFFFFFF)
    Dim iShape As Shape
    Static iChart As ChartObject

    If Lv.ListItems.Count = 1 Then Set iChart = ActiveSheet.ChartObjects.Add(0, 0, Lv.Width, Lv.ListItems(1).Height * Count)
    With iChart.Chart.Shapes.AddShape(msoShapeRectangle, 0, Lv.ListItems(1).Height * (Lv.ListItems.Count - 1), Lv.Width, Lv.ListItems(1).Height * (Count - Lv.ListItems.Count + 1))
        .Line.Visible = msoFalse
        .Fill.ForeColor.RGB = BColor
    End With
    If Lv.ListItems.C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值