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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top