DataGridView根据列中每一行的值更改行标题颜色

本文关键字:一行 颜色 标题 DataGridView | 更新日期: 2023-09-27 18:16:59

我正在编写一个管理并发机器的软件。DataGridView显示了机器的状态,我想把每台机器的行标题涂成红色或绿色,如果它被激活或没有。

我已经在网上搜索并尝试了多种解决方案,但没有一个已经工作,标题仍然是灰色的,所以我请求你的帮助。

DGVMachinesStatus.DataSource = db.GetAllFrom("machines");
DGVMachinesStatus.EnableHeadersVisualStyles = false;
foreach (DataGridViewRow r in DGVMachinesStatus.Rows)
{
    if (r.Cells["status"].ToString().Equals(DBNull.Value.ToString()))
    {
        DataGridViewCellStyle rowStyle;
        rowStyle = r.HeaderCell.Style;
        rowStyle.BackColor = Color.Red;
        r.HeaderCell.Style = rowStyle;  
    }
    else
    {
        DataGridViewCellStyle rowStyle;
        rowStyle = r.HeaderCell.Style;
        rowStyle.BackColor = Color.Green;
        r.HeaderCell.Style = rowStyle;
    }
}

DataGridView根据列中每一行的值更改行标题颜色

这个问题是由调用表单构造函数中的代码引起的,我避免了在打开表单时使用激活事件为DGV着色的问题。我不知道这是不是最好的原因但是它是有效的