比如 有一列 内容有    是  否 2个值
是的时候背景颜色 是红色
否的时候背景颜色 是绿色怎么搞定/...

解决方案 »

  1.   

    给你个代码做参考:
    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
      

  2.   

    背景颜色没有办法改变,加图片的方法只能做到隔行变色,也不符合要求.
    不过改字体颜色还是可以做到的,看看这个效果吧
    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