here are the code i'll use
Code:
Protected Overrides Sub OnDrawItem(ByVal e As System.Windows.Forms.DrawListViewItemEventArgs)
[B]If Not (e.State And ListViewItemStates.Selected) = 0 OrElse e.Item.Selected Then
Using br As New Drawing2D.LinearGradientBrush(e.Bounds, _startcolor, _endcolor, Drawing2D.LinearGradientMode.Vertical)
' Draw the background for a selected item.
e.Graphics.FillRectangle(br, e.Bounds)
End Using
End If[/B]
Dim sf As New StringFormat()
Dim index As Integer
index = e.ItemIndex
If SmallImageList IsNot Nothing Then
e.Graphics.DrawImage(SmallImageList.Images.Item(index), New Rectangle(e.Bounds.X + 2, e.Bounds.Y + 2, 16, 16))
e.Graphics.DrawString(e.Item.Text, Me.Font, Brushes.Black, New Rectangle(e.Bounds.X + SmallImageList.ImageSize.Width + 4, e.Bounds.Y, e.Bounds.Width - SmallImageList.ImageSize.Width - 4, e.Bounds.Height), sf)
ElseIf [B]LargeImageList IsNot Nothing Then
e.Graphics.DrawImage(LargeImageList.Images(index), New Rectangle(e.Bounds.X + 30, e.Bounds.Y + 15, 32, 32))
e.Graphics.DrawString(e.Item.Text, Me.Font, Brushes.Black, New Rectangle(e.Bounds.X + 15, e.Bounds.Y + 50, 70, 32))[/B]
Else
e.Graphics.DrawString(e.Item.Text, Me.Font, Brushes.Black, e.Bounds)
End If
MyBase.OnDrawItem(e)
End Sub






