我不知道你把颜色代码放在哪里,但我总是在绘图部分做
这是我根据状态为线着色的地方,除了依赖黄色或蓝色的第一列 - 这是正在进行的代码,应该整理一下
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex > 0)
{
if (dataGridView1.Rows[e.RowIndex].Cells[].Value.ToString() == "good")
{
e.CellStyle.BackColor = Color.PaleGreen;
e.CellStyle.SelectionForeColor = Color.Black;
e.CellStyle.SelectionBackColor = Color.Wheat;
}
if (dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString() == "warning")
{
e.CellStyle.BackColor = Color.LightGoldenrodYellow;
e.CellStyle.SelectionForeColor = Color.Black;
e.CellStyle.SelectionBackColor = Color.Wheat;
}
if (dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString() == "error")
{
e.CellStyle.BackColor = Color.Salmon;
e.CellStyle.SelectionForeColor = Color.Black;
e.CellStyle.SelectionBackColor = Color.Wheat;
}
if (e.Value.ToString() == "Yellow")
{
e.CellStyle.BackColor = Color.Yellow;
}
else
if (e.Value.ToString() == "Blue")
{
e.CellStyle.BackColor = Color.LightBlue;
}
}
}
或者你可以这样做:
foreach(DataGridViewRow r in dataGridView1.Rows)
{
if(!String.IsNullOrEmpty(r.Cells[0].Value.ToString()))
{
r.DefaultCellStyle.BackColor = Color.Violet;
}
}
因此,如果一行的所有第一个单元格都不为空,则将该行着色为紫色。