给你个代码做参考: Option ExplicitPrivate Sub Form_Load() Dim i As Integer Dim iFontHeight As Long Dim iBarHeight As Integer Dim j As Integer Dim itmX As ListItem Dim ColHead As ColumnHeader ListView1.ColumnHeaders.add , , "This is Just a Simple Example" ListView1.ColumnHeaders(1).Width = 3000 ''添加一些实验数据 For j = 1 To 33 Set itmX = ListView1.ListItems.add() itmX.Text = "This is item number " & CStr(j) Next j Me.ScaleMode = vbTwips picGreenbar.ScaleMode = vbTwips picGreenbar.BorderStyle = vbBSNone picGreenbar.AutoRedraw = True picGreenbar.Visible = False picGreenbar.Font = ListView1.Font iFontHeight = picGreenbar.TextHeight("b") + Screen.TwipsPerPixelY iBarHeight = (iFontHeight * 1) picGreenbar.Width = ListView1.Width ''====== picGreenbar.Height = iBarHeight * 2 picGreenbar.ScaleMode = vbUser picGreenbar.ScaleHeight = 2 picGreenbar.ScaleWidth = 1 ''draw the actual bars picGreenbar.Line (0, 0)-(1, 1), vbWhite, BF picGreenbar.Line (0, 1)-(1, 2), RGB(227, 241, 226), BF ''====== ListView1.PictureAlignment = lvwTile ListView1.Picture = picGreenbar.Image End Sub
背景颜色没有办法改变,加图片的方法只能做到隔行变色,也不符合要求. 不过改字体颜色还是可以做到的,看看这个效果吧 Private Sub Form_Load() Dim j As Integer Dim itmX As ListItem Dim ColHead As ColumnHeader ListView1.ColumnHeaders.Add , , "isno" ListView1.ColumnHeaders(1).Width = 3000 ''添加一些实验数据 For j = 1 To 100 Set itmX = ListView1.ListItems.Add() itmX.Text = IIf(j Mod 2 = 0, "是", "否") If itmX.Text = "是" Then itmX.ForeColor = vbRed Else itmX.ForeColor = vbBlue End If Next j End Sub
Option ExplicitPrivate Sub Form_Load()
Dim i As Integer
Dim iFontHeight As Long
Dim iBarHeight As Integer
Dim j As Integer
Dim itmX As ListItem
Dim ColHead As ColumnHeader
ListView1.ColumnHeaders.add , , "This is Just a Simple Example"
ListView1.ColumnHeaders(1).Width = 3000
''添加一些实验数据
For j = 1 To 33
Set itmX = ListView1.ListItems.add()
itmX.Text = "This is item number " & CStr(j)
Next j Me.ScaleMode = vbTwips
picGreenbar.ScaleMode = vbTwips
picGreenbar.BorderStyle = vbBSNone
picGreenbar.AutoRedraw = True
picGreenbar.Visible = False
picGreenbar.Font = ListView1.Font
iFontHeight = picGreenbar.TextHeight("b") + Screen.TwipsPerPixelY
iBarHeight = (iFontHeight * 1)
picGreenbar.Width = ListView1.Width
''======
picGreenbar.Height = iBarHeight * 2
picGreenbar.ScaleMode = vbUser
picGreenbar.ScaleHeight = 2
picGreenbar.ScaleWidth = 1
''draw the actual bars
picGreenbar.Line (0, 0)-(1, 1), vbWhite, BF
picGreenbar.Line (0, 1)-(1, 2), RGB(227, 241, 226), BF
''======
ListView1.PictureAlignment = lvwTile
ListView1.Picture = picGreenbar.Image
End Sub
不过改字体颜色还是可以做到的,看看这个效果吧
Private Sub Form_Load()
Dim j As Integer
Dim itmX As ListItem
Dim ColHead As ColumnHeader
ListView1.ColumnHeaders.Add , , "isno"
ListView1.ColumnHeaders(1).Width = 3000 ''添加一些实验数据
For j = 1 To 100
Set itmX = ListView1.ListItems.Add()
itmX.Text = IIf(j Mod 2 = 0, "是", "否")
If itmX.Text = "是" Then
itmX.ForeColor = vbRed
Else
itmX.ForeColor = vbBlue
End If
Next j
End Sub