Foros del Web » Programación para mayores de 30 ;) » .NET »

Pintar filas de datagridview

Estas en el tema de Pintar filas de datagridview en el foro de .NET en Foros del Web. Hola, estoy intentando pintar el color de fondo de cada fila de un datagridview en función de un valor dentro de cada fila (ESTADO). El ...
  #1 (permalink)  
Antiguo 30/09/2010, 10:30
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Pintar filas de datagridview

Hola, estoy intentando pintar el color de fondo de cada fila de un datagridview en función de un valor dentro de cada fila (ESTADO).

El problema es que si utilizo el evento RowPostPaint, el propio cambio de color vuelve a lanzar este evento provocando un resultado un tanto aleatorio (lo lógico sería pensar que sería una recursión infinita, pero no, es aleatorio).

El datagridview es rellenado de datos llamando a un método cargaDatos() que a su vez es llamado en Form.Load. He probado a crear un método pintarFilas() y llamarlo después de llamar a cargaDatos(), pero me encuentro con el problema de que el método es llamado antes de que el grid sea visible y posteriormente, el grid es pintado con las propiedades que se definieron originalmente, es decir, deshace los cambios hechos por pintarFilas().

También he probado con datagridview.RowsAdded con mal resultado.

¿Alguien sabe como resolver esto? ¿Qué evento del grid o del form se podría utilizar para pintar filas en función de un valor dentro de la propia fila?

Gracias

PD: Por cierto, por si aporta algo trabajo con VB.NET
  #2 (permalink)  
Antiguo 30/09/2010, 10:49
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Respuesta: Pintar filas de datagridview

Vaya, ahora encontré la solución en este mismo foro: http://www.forosdelweb.com/f29/color...6/#post3061637

Aún no lo he probado mucho pero parece que el evento adecuado es CellFormatting.

Gracias
  #3 (permalink)  
Antiguo 30/09/2010, 10:52
Avatar de devilinside  
Fecha de Ingreso: marzo-2008
Ubicación: En Perú
Mensajes: 73
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: Pintar filas de datagridview

En tu procedimiento que has creado llamado "pintarfilas()" coloca algo como el siguiente código (tú lo ajustas a tus necesidades):

Cita:
'coloreando las filas con pedidos vencidos
For i = 0 To Me.dgvRequisiciones.Rows.Count - 1
If Me.dgvRequisiciones.Item(10, i).Value = 1 Then
Me.dgvRequisiciones.Rows(i).DefaultCellStyle.BackC olor = Color.Yellow
End If
Next
Saludos.

Etiquetas: datagridview, eventos, rowpostpaint
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 19:17.