读书人

listview 行背景色有关问题

发布时间: 2012-04-21 14:34:44 作者: rapoo

listview 行背景色问题
比如 有一列 内容有 是 否 2个值
是的时候背景颜色 是红色
否的时候背景颜色 是绿色

怎么搞定/...

[解决办法]
给你个代码做参考:

VB code
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.ImageEnd 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 jEnd Sub 

读书人网 >VB

热点推荐