如何按单元格的背景色求和?

时间:2019-04-21 12:25:29

标签: c#

如何计算DataGridView中具有相同背景颜色的单元格总数(而不是单元格内容)?这是我的代码...

            int sum = 0;
            foreach (DataGridViewRow row2 in dataGridView2.Rows)
            {
                for (int i = 0; i < dataGridView2.Rows.Count; i++)
                {
                    if (row2.Cells[i].Style.BackColor == 
                        Color.YellowGreen)
                        sum++;
                     {
                        if (sum >= 2)

                        {
                            richTextBox2.Text = ("Cars");
                        }
                     }
                 }
             }

enter image description here

2 个答案:

答案 0 :(得分:0)

我看到发布的代码有两个问题。

第一个问题

您可能要迭代所有行,然后迭代每行的每一列。但是,您的第二个for循环看起来不正确。

for (int i = 0; i < dataGridView2.Rows.Count; i++) {...}

这可能应该遍历所有列索引。使用此代码,i将从0到您的GridView的数量。

第二个问题

sum++;行应在此处的大括号内。

错误:

if (row2.Cells[i].Style.BackColor == Color.YellowGreen)
    sum++;
{

右:

if (row2.Cells[i].Style.BackColor == Color.YellowGreen)
{
    sum++;

您这样做的方式是,只有sum++;行位于if语句内,大括号内的所有内容每次都会执行(您可能不希望这样做)。

答案 1 :(得分:0)

                int sum = 0;
                for (int i = 0; i < dataGridView2.Rows[0].Cells.Count; i++)
                {
                    if (dataGridView2.Rows[0].Cells[i].Style.BackColor == 
                    Color.YellowGreen)
                    sum++;
                   {
                     if (sum > 2)
                   {
                      richTextBox2.Text = ("Cars");
                   }
                }