DataGridView根据每行的列中的值更改行标题颜色
问题描述:
我在编写用于管理并发机器的软件。 DataGridView
显示机器的状态,如果激活或不激活,我想将每台机器的行标题打上红色或绿色。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的问题。我不知道这是否是最好的原因,但它工作
您的代码工作没有任何问题。你有没有运行时错误? –
你尝试过'EnableHeaderVisualStyles = False'吗?有时候是因为你的代码中没有默认属性。只是检查它:) – Muj
@Muj请检查上面的代码。它已经包含'EnableHeaderVisualStyles = False'。 –