ListView控件在写程序的时候经常会用到,是一个很实用的控件。不过在显示的数据比较多的时候(以报表风格显示数据,类似于资源管理器的详细查看),看起来不方便。大家可能对论坛比较熟悉,大多数论坛显示的时候都是每行以不同的颜色进行显示,以区分出不同行的数据。其实我们也可以借鉴一下这个方法,用程序来实现ListView控件的行间隔颜色。
崔占民
EMAIL:CUIZM@163.COM
首先在窗口中添加一个ListView控件,方法:菜单->工程->部件->Microsoft Window Common Control 6.0 (后面为版本号)。再添加一个Picture控件,改名为picGreenbar。
实现的代码如下:
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
代码量不多,不过很实用。