我有一个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;
}
}
}
}
但是当第一行包含此值时,我有一个问题,所有行都用它的颜色着色
任何帮助??
答案 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;
}
}
}