Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2011, 16:06
Avatar de DjMiki
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.