Usuario
Como poner forecolor a determinadas filas de la grilla por un condicion

Pregunta
-
Hola amigos: alguien puede ayudarme a como poner determinadas filas de mi grilla un determinado color en su propiedad forecolor segun la condicion que deseo:
Ejemplo:
en mi grilla tengo los campos: ID, Apellidos, Nombres, telefono, Condicion, etc...
luego en la columna condicion existen los valores: NULL, retirado y vigente...
entonces cuando se carga mi grilla deseo que las filas que contengan la condicion retirados sea de color rojo y las filas que contengan la condicion vigente sean de color azul y cuando sea null de color negro.
alguien me podria ayudar para ver como lograr eso.
- Cambiado Enrique M. Montejo viernes, 26 de diciembre de 2014 7:33 Pregunta relacionada con controles de Windows Forms.
Todas las respuestas
-
Anabelen, haces uso de un ListView o DataGridView?
En ambos casos la solución es parecida, debes de recorrer la grilla y consultar por el valor que esperas. Te dejo el ejemplo en caso sea un DataGridView
for (int i = 0; i < dataGridView1.RowCount; i++) { if (dataGridView1[1, i].Value == "RETIRADO") { dataGridView1[1, i].Style.BackColor = Color.Red; } else if (dataGridView1[1, i].Value == "VIGENTE") { dataGridView1[1, i].Style.BackColor = Color.Blue; } else { dataGridView1[1, i].Style.BackColor = Color.Black; } }
__________________________________________________________________________________________________
Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.
Willams Morales P.
Arequipa - Perú- Editado Willams Morales jueves, 18 de diciembre de 2014 23:53
-
-
De acuerdo, copio el ejemplo
for (int i = 0; i < dataGridView1.RowCount; i++) { if (dataGridView1[1/*OJO AQUÍ COLOCAR EL INDICE DE LA COLUMNA*/, i].Value == "RETIRADO") { dataGridView1[1, i].Style.BackColor = Color.Red; } else if (dataGridView1[1, i].Value == "VIGENTE") { dataGridView1[1, i].Style.BackColor = Color.Blue; } else { dataGridView1[1, i].Style.BackColor = Color.Black; } }
__________________________________________________________________________________________________
Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.
Willams Morales P.
Arequipa - Perú- Editado Willams Morales jueves, 18 de diciembre de 2014 23:54
-
-
Me referiré al hilo que me mencionas
__________________________________________________________________________________________________
Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.
Willams Morales P.
Arequipa - Perú -
Hola amigo William esl codigo funciono, pero como siempre no me explique bien, el campo condicion es una clave foranea que tiene los valores 1, 2 y NULL (CAMPO INTEGER) que corresponden a: retirado, vigente y null
ahora la condicion es que si tiene numero este de color rojo toda la fila y si es null de color azul toda la fila...
perdoname por no saber explicarme bien...
- Editado Anabelen RD viernes, 19 de diciembre de 2014 2:22
-
Anabelen, culminarlo es lo de menos. Debes de basarte en los ejemplos que se te proporciona para terminar o mejorar tú código.
for (int i = 0; i < dataGridView1.RowCount; i++) { if (dataGridView1[1 /*INDICE DE COLUMNA QUE QUIERES CONDICIONAR*/, i].Value != null) { dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red; } else { dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Blue; } }
__________________________________________________________________________________________________
Espero haberte ayudado con mi sugerencia, si resolvió tu problema no olvides marcarla como respuesta.
Willams Morales P.
Arequipa - Perú- Editado Willams Morales viernes, 19 de diciembre de 2014 7:31
- Propuesto como respuesta Miguel.Vazquez.MSDN miércoles, 24 de diciembre de 2014 18:46
-
hola amigo, funciono en parte, cuando tengo dato en la columna Condicion se pinta, pero tengo el otro problema que cuando esta en vacio (NULL) no funciona, me aparece error...
te indico esa columna es una clave foranea la cual ingresa un ID de otra tabla y cuando no tiene registro esta vacia, en la db aparece la palabra NULL, pero en vb esta vacio no tiene dato....
como puedo lograrlo ahi, e intentado miles de formas pero no encuentro la solucion...es que tengo mucho que aprender...jijijijij.
aqui esta mi codigo:
Private Sub PonerColorFilas()
Try
For i As Integer = 0 To DataGridView1.RowCount - 1
If DataGridView1(16, i).Value > 0 Then
DataGridView1.Rows(i).DefaultCellStyle.ForeColor = Color.Red
Else
DataGridView1.Rows(i).DefaultCellStyle.ForeColor = Color.Blue
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Subantes del else funciona perdectamente, despues del else ya no funciona
- Editado Anabelen RD viernes, 19 de diciembre de 2014 23:51