Colorear un ListView

Acá les dejo una subrutina que me ha resultado muy útil desde hace varios años. La función pinta las lineas de un listview alternando dos colores, esto facilita mucho la lectura cuando el listview tiene muchas columnas o las columnas son muy anchas.

Public Sub colorearListView(ByRef list As ListView)
Dim i As Integer
For i = 0 To list.Items.Count - 1
If i = Int(i / 2) * 2 Then
list.Items.Item(i).BackColor = Color.White
Else
list.Items.Item(i).BackColor = Color.LightGoldenrodYellow
End If
Next
list.FullRowSelect = True
End Sub

Estoy seguro que con muy poco esfuerzo podrán también adaptarlo a sus necesidades y también mejorarlo.



5 Responses to “Colorear un ListView”

  1. cibernetiko dice:

    excelente codigo.. le da un toque mucho mas profesional al listview.. gracias

  2. NicoNqn dice:

    Hola, muy buena la pagina me esta ayudando de mucho,pero tengo un problema con un listview, estoy usando visual 2005.
    Tengo 2 columnas (Habitacion,Estado) y 2 filas (Ej: Habitacion:1, Estado:Ocupado,Habitacion:2,Estado:Libre etc). Necesito que si el estado de una de las habitaciones es ocupado la celda me pinte en rojo o cuaquier color.Solamente que pinte en rojo la celda del estado,en este ejemplo seria la columna 1 fila 1.
    Pruebo con este codigo (lstGrilla.Items(fila).SubItems(col).BackColor = Color.Red)pero me larga un error
    Espero que me pueda haber explicado..desde ya muchas gracias.!

  3. l_kamikaze_l dice:

    disculpa la ignorancia.. pero kiero llamar a ese sub en el evento load del form y no se como.. jeje Help me!! por fa..!!

  4. Geronimo Fernandez dice:

    Para utilizar la funcion solo tienes que pasarle el nombre de tu listview como parametro:

    Private Sub Form1_Load(sender….

    colorearListView(ListView1)

    End Sub

  5. Pako dice:

    Hola,

    Buscando por google como cambiar de colores al ListView llegue aquí :)

    Me sirvió el código, gracias, le cambie alguna cosa para optimizarlo y este fue el resultado:

    Public Sub colorearListView(ByRef list As ListView)
    Dim color As Color = color.FromArgb(0, 225, 239, 253)
    Dim i As Integer
    For i = 0 To list.Items.Count – 1 Step 2
    list.Items.Item(i).BackColor = color
    Next
    list.FullRowSelect = True
    End Sub

    Y para colorearlo seria:

    colorearListView(ListView1)

    Saludos

Comentar