加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB ListView 隔行背景

发布时间:2020-12-17 08:18:23 所属栏目:百科 来源:网络整理
导读:Private Sub SetListViewColor(Lv As ListView,pic As PictureBox,LvCount As Long) Dim i As Integer pic.BackColor = Lv.BackColor Lv.Parent.ScaleMode = vbTwips pic.ScaleMode = vbTwips pic.BorderStyle = vbBSNone pic.AutoRedraw = True pic.Visible
Private Sub SetListViewColor(Lv As ListView,pic As PictureBox,LvCount As Long)
   Dim i As Integer

   pic.BackColor = Lv.BackColor

   Lv.Parent.ScaleMode = vbTwips

    pic.ScaleMode = vbTwips

    pic.BorderStyle = vbBSNone

    pic.AutoRedraw = True

    pic.Visible = False

    pic.Width = Screen.Width   '因为我的LISTVIEW会自动调整大小的,所以直接用屏幕的宽度

    pic.Height = Lv.ListItems(1).Height * LvCount '取得要添充的高度

    pic.ScaleHeight = LvCount

    pic.ScaleWidth = 1

    pic.DrawWidth = 1
    '-----------------------------

    '画出每行LISTVIEW的颜色

    '------------------------------

    For i = 1 To LvCount
       
        If i / 2 = Int(i / 2) Then

                        
            pic.Line (0,i - 1)-(1,i),&HC0FFFF,BF


        Else
            pic.Line (0,16777152,BF

        End If

    Next

    Lv.Picture = pic.Image
    
End Sub


Private Sub SetListViewColor(Lv As ListView,pic As PictureBox)

    Dim h               As Single
    Dim sw              As Single
    Dim oAltBackColor   As OLE_COLOR
    
    oAltBackColor = pic.BackColor
    
    With Lv
        If .View = lvwReport Then
            If .ListItems.Count Then
                .PictureAlignment = lvwTile
                h = .ListItems(1).Height
                With pic
                    .Visible = False
                    .BackColor = Lv.BackColor
                    .BorderStyle = 0
                    .Height = h * 2
                    .Width = 10 * Screen.TwipsPerPixelX
                    sw = .ScaleWidth
                    .AutoRedraw = True
                    If StartAtOddRow Then
                        pic.Line (0,0)-Step(sw,h - Screen.TwipsPerPixelY),oAltBackColor,BF
                    Else
                        pic.Line (0,h)-Step(sw,h),BF
                    End If
                    Set Lv.Picture = .Image
                    .AutoRedraw = False
                    .BackColor = oAltBackColor
                End With
                .Refresh
                Exit Sub
            End If
        End If
        Set .Picture = Nothing
    End With
    
End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读