VB ListView 隔行背景

前端之家收集整理的这篇文章主要介绍了VB ListView 隔行背景前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. Private Sub SetListViewColor(Lv As ListView,pic As PictureBox,LvCount As Long)
  2. Dim i As Integer
  3.  
  4. pic.BackColor = Lv.BackColor
  5.  
  6. Lv.Parent.ScaleMode = vbTwips
  7.  
  8. pic.ScaleMode = vbTwips
  9.  
  10. pic.BorderStyle = vbBSNone
  11.  
  12. pic.AutoRedraw = True
  13.  
  14. pic.Visible = False
  15.  
  16. pic.Width = Screen.Width '因为我的LISTVIEW会自动调整大小的,所以直接用屏幕的宽度
  17.  
  18. pic.Height = Lv.ListItems(1).Height * LvCount '取得要添充的高度
  19.  
  20. pic.ScaleHeight = LvCount
  21.  
  22. pic.ScaleWidth = 1
  23.  
  24. pic.DrawWidth = 1
  25. '-----------------------------
  26.  
  27. '画出每行LISTVIEW的颜色
  28.  
  29. '------------------------------
  30.  
  31. For i = 1 To LvCount
  32. If i / 2 = Int(i / 2) Then
  33.  
  34. pic.Line (0,i - 1)-(1,i),&HC0FFFF,BF
  35.  
  36.  
  37. Else
  38. pic.Line (0,16777152,BF
  39.  
  40. End If
  41.  
  42. Next
  43.  
  44. Lv.Picture = pic.Image
  45. End Sub
  46.  
  47.  
  48. Private Sub SetListViewColor(Lv As ListView,pic As PictureBox)
  49.  
  50. Dim h As Single
  51. Dim sw As Single
  52. Dim oAltBackColor As OLE_COLOR
  53. oAltBackColor = pic.BackColor
  54. With Lv
  55. If .View = lvwReport Then
  56. If .ListItems.Count Then
  57. .PictureAlignment = lvwTile
  58. h = .ListItems(1).Height
  59. With pic
  60. .Visible = False
  61. .BackColor = Lv.BackColor
  62. .BorderStyle = 0
  63. .Height = h * 2
  64. .Width = 10 * Screen.TwipsPerPixelX
  65. sw = .ScaleWidth
  66. .AutoRedraw = True
  67. If StartAtOddRow Then
  68. pic.Line (0,0)-Step(sw,h - Screen.TwipsPerPixelY),oAltBackColor,BF
  69. Else
  70. pic.Line (0,h)-Step(sw,h),BF
  71. End If
  72. Set Lv.Picture = .Image
  73. .AutoRedraw = False
  74. .BackColor = oAltBackColor
  75. End With
  76. .Refresh
  77. Exit Sub
  78. End If
  79. End If
  80. Set .Picture = Nothing
  81. End With
  82. End Sub

猜你在找的VB相关文章