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

Problema al colorear Filas de Datagridview

Estas en el tema de Problema al colorear Filas de Datagridview en el foro de .NET en Foros del Web. Hola espero me puedan ayudar, quiero colorear las filas de un datagrid deacuerdo a criterios, entonces ya lo logre hacer eso, pero el problema es ...
  #1 (permalink)  
Antiguo 02/03/2011, 16:06
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 6 meses
Puntos: 2
Pregunta Problema al colorear Filas de Datagridview

Hola espero me puedan ayudar, quiero colorear las filas de un datagrid deacuerdo a criterios, entonces ya lo logre hacer eso, pero el problema es al hacerlo por varios criterios: haber expongo mi código fuente para que me puedan ayudar.
Código vb:
Ver original
  1. For i As Integer = 0 To dgListfich.Rows.Count - 1 ' RECORRO EL DATAGRID
  2.            If dgListfich.Item(25, i).Value = "0" Then ' SI CUMPLE ESTA CONFICION QUE LO PINTE(EN ESTE CASO ES EL CAMPO ESTADO)
  3.                Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Red
  4.                 Me.dgListfich.Rows(i).DefaultCellStyle.ForeColor = Color.White
  5.             ElseIf dgListfich.Item(25, i).Value = "1" Then ' AQUI BIENE MI PROBLEMA
  6.              ' AQUI VALIDO SI LA DIFERENCIA DE DIAS ES MENOR O IGUAL A 2
  7.              ' QUE PINTE DE COLOR NARANJA
  8.                If DifDias(CDate(dgListfich.Item(20, dgListfich.CurrentRow.Index).Value)) <= 2 Then
  9.                     Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Orange
  10.                     Me.dgListfich.Rows(i).DefaultCellStyle.ForeColor = Color.White
  11.                 Else
  12.                 ' PERO SIEMPRE SALTA A ESTE ELSE, Y YO EH REVIZADO EN LO QUE ME
  13.                ' DEVUELVE ESA FUNCION Y SI ES LO QUE DESEO, OSEA UN INTEGER
  14.                    Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Azure
  15.                 End If
  16.             ElseIf dgListfich.Item(25, i).Value = "2" Then
  17.                 Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Azure
  18.             ElseIf dgListfich.Item(25, i).Value = "3" Then
  19.                 Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.YellowGreen
  20.             ElseIf dgListfich.Item(25, i).Value = "4" Then
  21.                 Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Silver
  22.             End If
  23.         Next
FUNCION QUE ME DEVUELVE LA DIFERENCIA DE DIAS
Código vb:
Ver original
  1. Public Function DifDias(ByVal dat As Date) As Integer
  2.         DifDias = DateDiff(DateInterval.Day, Now.Date, dat)
  3.     End Function
Los demás ELSEIF si funcionan bien, si colorean el problema es que si entra alli dentro de ese IF siempre mostrara de ese color, osea asi la diferencia de fechas sea mínima amplia, negativa o positiva.
Espero me puedan Ayudar.
  #2 (permalink)  
Antiguo 02/03/2011, 17:40
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Problema al colorear Filas de Datagridview

Trata cambiando la linea 8

Código C#:
Ver original
  1. If DifDias(CDate(dgListfich.Item(20, i).Value)) <= 2 Then
  #3 (permalink)  
Antiguo 02/03/2011, 17:43
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Problema al colorear Filas de Datagridview

Estoy suponiendo que dgListfich.Item recibe 2 parametros:

ColumnIndex -> lo tienes con valor fijo de 20
RowIndex -> index del row que va recorriendo el For. Osea tu variable i

Solo confirma que el método Item recibe esos parametros (y en ese orden) checate el tooltip que te pone cuando estas escribiendo el código.
  #4 (permalink)  
Antiguo 02/03/2011, 17:58
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 6 meses
Puntos: 2
Exclamación Respuesta: Problema al colorear Filas de Datagridview

Tenian muchisima razon, ya logre dar con mi problema, sucede que en vez de mandarle la posicion del FOR le mandaba la posicion actual del cursor, muchas gracias a los dos, por su respuesta
Todo se complica cuando uno esta metido tanto en eso que no ve el error que esta en sus narices.
Espero le sirva alguien este codigo.

Etiquetas: colorear, datagridview, filas
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 15:06.