Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Color en toda la fila de un listview

Estas en el tema de Color en toda la fila de un listview en el foro de Visual Basic clásico en Foros del Web. Hola a todos, y ante todo gracias. Mi problema es el del titulo. Tengo un listview en visual basic 6 donde necesito colorear toda una ...
  #1 (permalink)  
Antiguo 15/10/2008, 08:01
 
Fecha de Ingreso: abril-2007
Mensajes: 140
Antigüedad: 17 años, 1 mes
Puntos: 3
Color en toda la fila de un listview

Hola a todos, y ante todo gracias. Mi problema es el del titulo. Tengo un listview en visual basic 6 donde necesito colorear toda una fila. se hacerlo con un dato solo de una fila, pero ¿como se hace con toda la fila? Muchas gracias
  #2 (permalink)  
Antiguo 15/10/2008, 08:36
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: Color en toda la fila de un listview

Listview solo permite colorear LAS LETRAS, no el FONDO... Es decir, podes colorear TODO EL FONDO COMPLETO, pero no linea por linea, ó campo por campo

Si queres colorear todo el fondo (osea en vez de blanco otro color) es sensillo

Código:
ListView.BackColor = ELCOLOR
Ahora si queres colorear la letra de alguna linea tenes en las FAQ un codigo mio, te lo pongo igual aca

Código:
'========== Codigo realizado por CULD ==========
'============= [email protected] ===============
'Descripcion: Sub proceso al cual se le envian los parametros
'LISTVIEW, LINEA, COLOR, y automaticamente cambia el color de esa linea
'-----------------------------------------------
Public Sub ListView_ColorearLinea(LaLista As ListView, Linea As Long, Color As Long)
Dim X As Integer

'Verifico si la linea que quiere modificar existe
If Linea > LaLista.ListItems.Count Then
    Exit Sub
End If

'modifico el color de la primer columna
LaLista.ListItems(Linea).ForeColor = Color

'modifico el color de las demas columnas
For X = 1 To LaLista.ColumnHeaders.Count - 1
    'verifico que el subitem tenga algo escrito, por que si no tiene nada tira
    'error de "subindice fuera de intervalo"
    If Trim(LaLista.SelectedItem.SubItems(X) <> "") Then
        LaLista.ListItems(Linea).ListSubItems(X).ForeColor = Color
    End If
Next X

'actualizo el list para que se vean los cambios
LaLista.Refresh
End Sub
Le envias los parametros y listo...

Si queres que te coloree todas las lineas tenes que recorrer con un for toda la lista

Código:
Dim X as Long
For X = 1 To ListView.ListItems.Count
     Call ListView_ColorearLinea(ListView, X, ELCOLOR)
Next X
  #3 (permalink)  
Antiguo 15/10/2008, 08:54
 
Fecha de Ingreso: abril-2007
Mensajes: 140
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: Color en toda la fila de un listview

Gracias, lo adapte con los nombres que yo use y funciono perfectamente. La verdad es que crei que habia alguna forma de hacerlo en toda la fila de una vez. Y el detalle de verificar que tenga algo escrito es de un experto. Gracias nuevamente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:07.