Public Class Form1 Dim alterne As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim strItem() As String = {"tata", "titi", "toto", "tutu"} Dim strSubItem() As String = {"mama", "mimi", "momo", "mumu"} With ListView1 .View = View.Details .OwnerDraw = True .Columns.Add("T", 200, HorizontalAlignment.Left) .Columns.Add("M", 200, HorizontalAlignment.Left) For x = 0 To strItem.Length - 1 Dim item As New ListViewItem(strItem(x)) item.SubItems.Add(strSubItem(x)) .Items.Add(item) Next End With End Sub Private Sub ListView1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawListViewItemEventArgs) Handles ListView1.DrawItem alterne += 1 If alterne Mod 2 = 0 Then e.Graphics.FillRectangle(Brushes.CornflowerBlue, e.Bounds) Else e.Graphics.FillRectangle(Brushes.SteelBlue, e.Bounds) End If e.DrawText() End Sub Private Sub ListView1_DrawSubItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem If alterne Mod 2 = 0 Then e.Graphics.FillRectangle(Brushes.CornflowerBlue, e.Bounds) Else e.Graphics.FillRectangle(Brushes.SteelBlue, e.Bounds) End If e.DrawText() End Sub Private Sub ListView1_DrawColumnHeader(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawListViewColumnHeaderEventArgs) Handles ListView1.DrawColumnHeader e.DrawDefault = True End Sub End Class
protected override void OnDrawItem(DrawListViewItemEventArgs e) { if ((e.ItemIndex & 1)==0 ) { e.Item.BackColor = m_BackGroundStripe1Colour; } else { e.Item.BackColor = m_BackGroundStripe2Colour; } e.DrawDefault = true; }