C sharp - Color celda datagridview

 
Vista:
sin imagen de perfil

Color celda datagridview

Publicado por David (6 intervenciones) el 11/09/2022 01:20:24
Buenas, tengo un datagridview que en una de sus columnas dependiendo de su valor se colorea la celda de color rojo, naranja o verde..
Quisera saber si hay alguna forma de contar cuantas celdas estan en verde y poner el resultado en un label. y asi con las celdas rojo y naranja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private void DTGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (this.DTGrid.Columns[e.ColumnIndex].Name == "Cantidad")
            {
                try
                {
                    if (e.Value.GetType() != typeof(System.DBNull))
                    {
                        if (Convert.ToInt32(e.Value) <= 1000)
                        {
                            e.CellStyle.ForeColor = Color.Black;
                            e.CellStyle.BackColor = Color.Green;
 
                            if (Convert.ToInt32(e.Value) <= 10)
                            {
                                e.CellStyle.ForeColor = Color.Black;
                                e.CellStyle.BackColor = Color.Orange;
                            }
                            if (Convert.ToInt32(e.Value) <= 3)
                            {
                                e.CellStyle.ForeColor = Color.White;
                                e.CellStyle.BackColor = Color.Red;
                            }
                        }
                    }
 
                }
                catch (Exception errcolor)
                {
 
                    MessageBox.Show(errcolor.Message);
                }
 
            }
        }

Este es el codigo que uso para colorear las celdas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Santiago

Color celda datagridview

Publicado por Santiago (24 intervenciones) el 16/09/2022 15:09:27
Hola:

Puedes recorrer el Grid fila a fila y columna a columna y obtener el color. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void button2_Click(object sender, EventArgs e)
        {
            int contNegras = 0;
            int contVerdes = 0;
 
            for (int fila = 0; fila <= dataGridView1.Rows.Count - 1; fila++)
            {
                for (int columna = 0; columna <= dataGridView1.ColumnCount - 1; columna++)
                {
                    if (dataGridView1.Rows[fila].Cells[columna].Style.BackColor == Color.Black)
                        contNegras++;
                    else
                        contVerdes++;
                }
            }
 
            MessageBox.Show(contVerdes.ToString() + " celdas verdes y " + contNegras.ToString() +  " celdas negras");
 
        }

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar