问,如何改变 listview 的第一列的背景颜色? 从而与其它几列分开出来?

解决方案 »

  1.   

    用两个ListView试试看上面一个是表示第一列
      

  2.   

    一个办法是利用未公开的API函数向ListView加入背景图片,你可以在http://www.mvps.org/vbnet找到VB的例子。 
        另一个办法是在http://www.pobox.com/~bstowers/delphi/下载TExtListView & TEnhListView控件,它给ListView控件加入了自绘事件,你可以在自绘事件绘制图形。如果使用Delphi 4以上版本,就不用这个控件了,因为Delphi 4以上版本的TListView控件有CustomDraw事件,实现这个功能很方便。 
      

  3.   

    Private Sub SetListItemColor(lv As ListView, picBg As PictureBox)   Dim i As Integer   Dim mItem As ListItem   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    '-----------------------------    'custom.such as    '------------------------------    For i = 1 To 33        Set mItem = lv.ListItems        If mItem.Checked = False Then            If i Mod 2 = 0 Then                picBg.Line (0, i - 1)-(1, i), RGB(254, 209, 199), BF            Else               picBg.Line (0, i - 1)-(1, i), RGB(20, 54, 199), BF            End If        Else             picBg.Line (0, i - 1)-(1, i), RGB(254, 200, 100), BF        End If    Next
     
        lv.Picture = picBg.ImageEnd Sub
      

  4.   

    http://blog.joycode.com/shannon/archive/2003/11/24/7381.aspx