VBA Listview中隔行显示不同的背景颜色颜色 10
Listview中奇数行背景颜色显示白色,偶数行背景颜色显示浅蓝色,可不可以在初始化窗体时将颜色设定好,求详细代码...
Listview中奇数行背景颜色显示白色,偶数行背景颜色显示浅蓝色,可不可以在初始化窗体时将颜色设定好,求详细代码
展开
2个回答
展开全部
1、先在PictureBox控件里画图,之后将其加载到Listview中
2、给单元格/Shape添加颜色后,复制Range和Shapes对象给剪贴板,然后保存成图片,需要WinAPI
3、对ListItem子类化后进行重绘。这是原来Vb用的方法,vba里貌似没人用
下面的方法1、2与上面的方法2相似,方法3即上面的方法3。当然还可以通过调用整个控件hdc在内存中作图,但和方法3一样需要调用WinAPI
1、创建ChartObjects对象,并在里面添加不同颜色的shape
[vb] view plain copy
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))
2、给单元格/Shape添加颜色后,复制Range和Shapes对象给剪贴板,然后保存成图片,需要WinAPI
3、对ListItem子类化后进行重绘。这是原来Vb用的方法,vba里貌似没人用
下面的方法1、2与上面的方法2相似,方法3即上面的方法3。当然还可以通过调用整个控件hdc在内存中作图,但和方法3一样需要调用WinAPI
1、创建ChartObjects对象,并在里面添加不同颜色的shape
[vb] view plain copy
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))
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询