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 originalFor i As Integer = 0 To dgListfich.Rows.Count - 1 ' RECORRO EL DATAGRID
If dgListfich.Item(25, i).Value = "0" Then ' SI CUMPLE ESTA CONFICION QUE LO PINTE(EN ESTE CASO ES EL CAMPO ESTADO)
Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Red
Me.dgListfich.Rows(i).DefaultCellStyle.ForeColor = Color.White
ElseIf dgListfich.Item(25, i).Value = "1" Then ' AQUI BIENE MI PROBLEMA
' AQUI VALIDO SI LA DIFERENCIA DE DIAS ES MENOR O IGUAL A 2
' QUE PINTE DE COLOR NARANJA
If DifDias(CDate(dgListfich.Item(20, dgListfich.CurrentRow.Index).Value)) <= 2 Then
Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Orange
Me.dgListfich.Rows(i).DefaultCellStyle.ForeColor = Color.White
Else
' PERO SIEMPRE SALTA A ESTE ELSE, Y YO EH REVIZADO EN LO QUE ME
' DEVUELVE ESA FUNCION Y SI ES LO QUE DESEO, OSEA UN INTEGER
Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Azure
End If
ElseIf dgListfich.Item(25, i).Value = "2" Then
Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Azure
ElseIf dgListfich.Item(25, i).Value = "3" Then
Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.YellowGreen
ElseIf dgListfich.Item(25, i).Value = "4" Then
Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Silver
End If
Next
FUNCION QUE ME DEVUELVE LA DIFERENCIA DE DIAS
Código vb:
Ver originalPublic Function DifDias(ByVal dat As Date) As Integer
DifDias = DateDiff(DateInterval.Day, Now.Date, dat)
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.