listview 行背景色有关问题
listview 行背景色问题
比如 有一列 内容有 是 否 2个值
是的时候背景颜色 是红色
否的时候背景颜色 是绿色
怎么搞定/...
------解决方案--------------------
给你个代码做参考:
比如 有一列 内容有 是 否 2个值
是的时候背景颜色 是红色
否的时候背景颜色 是绿色
怎么搞定/...
------解决方案--------------------
给你个代码做参考:
- VB code
Option Explicit Private 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
------解决方案--------------------
背景颜色没有办法改变,加图片的方法只能做到隔行变色,也不符合要求.
不过改字体颜色还是可以做到的,看看这个效果吧
- VB code
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