VBA中 listview怎样通过条件改变任意行字体颜色

2024年11月20日 01:22
有2个网友回答
网友(1):

一、改变颜色
在VB6的ListView控件中,可以改变项目及其子项的前景色、背景色。实现方法如下
(1)在窗体上布置一个ListView控件

(2)窗体代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

Option Explicit

Private Sub Form_Load()
Dim itemX As ListItem

With ListView1
.View = lvwReport

.ColumnHeaders.Add , , "类别"
.ColumnHeaders.Add , , "品名1"
.ColumnHeaders.Add , , "品名2"

Set itemX = .ListItems.Add(, , "水果")
itemX.SubItems(1) = "苹果"
itemX.SubItems(2) = "香蕉"
ChangeForeColor itemX, &H8000& '墨绿色

Set itemX = .ListItems.Add(, , "饮料")
itemX.SubItems(1) = "果汁"
itemX.SubItems(2) = "可乐"
ChangeForeColor itemX, vbRed '红色

Set itemX = .ListItems.Add(, , "文具")
itemX.SubItems(1) = "铅笔"
itemX.SubItems(2) = "橡皮"
ChangeForeColor itemX, vbBlue '蓝色

End With
End Sub

'-------------------------------------
' 修改ListView 项的前景色颜色
'-------------------------------------
Private Sub ChangeForeColor( _
ByVal item As ListItem, _
ByVal NewColor As Long)
'设置项的颜色
item.ForeColor = NewColor
'设置所有子项的颜色
Dim subItem As ListSubItem

网友(2):

用NM_CUSTOMDRAW 技术实现Listview控件颜

我的这个方法能实现每一个单元格的颜色,可参考。另可参考:

Listview完全教程