在c#中着色Datagridview行时出错

时间:2014-06-18 15:49:55

标签: c# winforms datagridview

我有一个datageidview,它应该为包含特定值的行着色

    private void dataGridView2_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        foreach (DataGridViewRow myrow in dataGridView2.Rows)
        {
            if (e.RowIndex != -1)
            {
                    if (myrow.Cells[7].Value.ToString() == "Error")
                    {
                        myrow.DefaultCellStyle.BackColor = Color.Red;
                    }
                    else if (myrow.Cells[7].Value.ToString() == "NoError")
                    {
                        myrow.DefaultCellStyle.BackColor = Color.Green;
                    }
                }
        }
    }

但是当第一行包含此值时,我有一个问题,所有行都用它的颜色着色

任何帮助??

1 个答案:

答案 0 :(得分:1)

为网格中的所有可见单元格发送CellFormatting事件。您可以更好地使用事件中给出的数据来改变颜色。

private void dataGridView2_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.RowIndex != -1)
    {
        if (dataGridView2.Rows[e.RowIndex].Cells[7].Value.ToString() == "Error")
        {
            e.CellStyle.BackColor = Color.Red;
        }
        else if (dataGridView2.Rows[e.RowIndex].Cells[7].Value.ToString() == "NoError")
        {
             e.CellStyle.BackColor = Color.Green;
        }
    }
}