没有什么好搜索的,所以问题来了。
我有一个带有通过 SQL 查询填充的 datagridview 的表单。有一个日期列(存储为“delay_in_hours”,我用它来确定更改行的背景颜色的内容。
问题是在表单的初始加载时没有设置 backColor,只有在触发加载表单的相同事件(loadSql)时(就像我有一个按钮说更新/刷新表单)。
这是片段:
public void loadSql(
try
{
...
foreach (DataGridViewRow r in sqlDataGridView.Rows)
{
if (delay_in_hours >= Program._delay_warn3)
{
r.DefaultCellStyle.BackColor = Color.Red;
}
else if (delay_in_hours >= Program._delay_warn2)
{
r.DefaultCellStyle.BackColor = Color.Orange;
}
else if (delay_in_hours >= Program._delay_warn)
{
r.DefaultCellStyle.BackColor = Color.Yellow;
}
}
sqlDataGridView.Refresh();
sqlDataGridView.Update();
}
catch (Exception ex)
{
MessageBox.Show("loadsql Exception:" + ex.Message + " STACK: " + ex.StackTrace.ToString());
}
我无法为背景色制作“手表”。我将一个监视项设置为 CellStyle 的背景色,但是当我遍历 foreach 时,所有项/值都保持不变,但是当 foreach 完成时,即使监视项从未更改值,行也具有背景色。
关于导致这种情况的任何想法,或者我如何调试 backColor 以便确定为什么在加载时最初没有在表单上设置颜色?
SK