当前位置:编程学习 > VB >>

画listview背景的问题


'*********************************************************************
' SetListItemColor方法有三个参数,ListView控件的名称,字符串,PictureBox控件的名称
’VB里,当listview.listItem>1000时,怎么画Listitem的背景,并且显示没问题。
'*********************************************************************
Private Sub SetListItemColor(lv As ListView, strOffset As String, picBg As PictureBox)
   
On Error GoTo ErrorHandling
     Dim i           As Integer
     Dim j           As Integer
     Dim mItem       As ListItem
     Dim strOff()    As String
     Dim flag        As Boolean
     
     picBg.BackColor = lv.BackColor
     lv.Parent.ScaleMode = vbTwips
     picBg.ScaleMode = vbTwips
     picBg.BorderStyle = vbBSNone
     picBg.AutoRedraw = True
     picBg.Visible = False
     picBg.Width = lv.Width
     picBg.Height = lv.ListItems(1).Height * (lv.ListItems.Count)
     picBg.ScaleHeight = lv.ListItems.Count
     picBg.ScaleWidth = 1
     picBg.DrawWidth = 1
     strOff = split(strOffset, ",")
     Dim itemp As Integer
     For i = 1 To lv.ListItems.Count
      For j = 0 To UBound(strOff)
       If lv.ListItems.Item(i).SubItems(5) = strOff(j) Then
         picBg.Line (0, i - 1)-(1, i), RGB(255, 100, 50), BF
       End If
      Next
    Next
    lv.Picture = picBg.Image
ErrorHandling:

End Sub

问题特征:当lv.ListItems.Count<500时,lv.ListItems的背景色显示正常,当lv.ListItems.Count>500或更大时,lv.ListItems的背景色显示不正常。
求助:那位大哥能帮小弟解决此问题,愿献上5分。或更多。谢谢。附件里是,结果显示的界面。 --------------------编程问答-------------------- 要每次刷新的時候重繪
--------------------编程问答-------------------- 每次刷新的時候是重繪的。  --------------------编程问答-------------------- 单纯的想用画图的方式,是达不到完美的效果的。
可以用设置字体的颜色来实现。

lv.ListItems.Item(k).ListSubItems(t).ForeColor = vbRed
lv.ListItems.Item(k).ListSubItems(t).Bold = True

补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,