我有一个由本地数据库填充的数据网格视图。该 datagridview 有一些列有两种类型的值:“OK”和“NO”。 我想将具有“OK”值的单元格标记为绿色,将具有“NO”值的单元格标记为红色。
目前我正在尝试只使用一列并编写代码,但它不起作用
这是我的代码:
private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (this.dataGridView1.Columns[e.ColumnIndex].HeaderText.Equals("over05"))
{
if (e.Value != null)
{
if (((string)e.Value).Trim() == "OK")
e.CellStyle.BackColor = Color.Green;
if (((string)e.Value).Trim() == "NO")
e.CellStyle.BackColor = Color.Red;
}
}
}
不幸的是,我没有在该列上获得任何具有该值的颜色
谢谢你
您宁愿使用 RowPrepaint 事件:
private void DataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (this.dataGridView1.Columns[e.ColumnIndex].HeaderText.Equals("over05"))
{
dgvLignes.Rows[e.RowIndex].DefaultCellStyle.BackColor = e.Value?.ToString().Trim() switch
{
"OK" => Color.Green,
"NO" => Color.Red,
_ => Color.Grey
}
}
}