DataGridView celular Backcolor no establece
-
08-10-2019 - |
Pregunta
Tengo un DataGridView con cuatro columnas. Los tres primeros son devueltos como una matriz: rojo, verde y azul. Todos los valores están comprendidos entre 0 y 255. He añadido mediante programación una columna llamada "Color". Me gustaría que el color de fondo de esta columna para reflejar el contenido RGB. Puedo ver los datos RGB correctamente, y utilizando el depurador, el color de fondo se está estableciendo correctamente contra la propiedad. También puedo establecer color de fondo de la columna y se muestra correctamente. He tratado de establecer el color de fondo de la celda "Rojo" y esto no funciona bien.
El código resultados a continuación en una columna completamente blanco.
Aquí está mi código:
DataGridViewColumn DGC = new DataGridViewColumn();
DGC.Name = "Colour";
DGC.CellTemplate = new DataGridViewTextBoxCell();
dgPallette.Columns.Add(DGC);
foreach (DataGridViewRow DGR in dgPallette.Rows)
{
Color cellColor = Color.FromArgb(
int.Parse(DGR.Cells["Red"].Value.ToString()),
int.Parse(DGR.Cells["Green"].Value.ToString()),
int.Parse(DGR.Cells["Blue"].Value.ToString()));
DGR.Cells["Colour"].Style.BackColor = cellColor;
}
¿Alguna idea?
Gracias de antemano Jim
Solución
A veces me parece que los colores de ajuste en el DataGridView no funciona como se esperaba y terminan recurrir al uso de la DataGridView.CellFormatting evento -. esto siempre hace el truco, y es bastante fácil de conseguir su cabeza alrededor
A menudo, los problemas surgen cuando el formato de la red se une a una fuente de datos - especialmente cuando se permite la clasificación. Este evento se vence eso.