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