当单元格值更改时,我尝试更改特定列中的背景颜色。 我没有找到这样做的方法,我不知道该怎么做。
ok ---->绿色背光。
nok ---->红色背光。
非常感谢你的帮助。
private void timer2_Tick(object sender, EventArgs e)
{
int count = 0;
foreach (DataRow dr in ds.Tables[0].Rows)
{
String StartCourse = dr[0].ToString();
string EndCourse = dr[1].ToString();
DateTime SystemTime = Convert.ToDateTime(DateTime.Now);
DateTime StartTime = Convert.ToDateTime(StartCourse);
DateTime EndTime = Convert.ToDateTime(EndCourse);
if (StartTime.TimeOfDay.Ticks <= SystemTime.TimeOfDay.Ticks && SystemTime.TimeOfDay.Ticks < EndTime.TimeOfDay.Ticks)
{
ds.Tables[0].Rows[count][5] = "ok";
}
else
{
ds.Tables[0].Rows[count][5] = "nok";
}
count++;
dataGridView1.DataSource = ds.Tables[0];
}
}
答案 0 :(得分:1)
请参阅DataGridViewColumn.DefaultCellStyle属性。这允许您为列设置DataGridViewCellStyle
。该类具有BackColor属性。
有关更多详细信息,请参阅以下MSDN文章:
答案 1 :(得分:1)
您可以调用此程序:
<强>已更新强>
void ColorGrid()
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[5].Value.ToString() == "ok")
{
row.DefaultCellStyle.BackColor = Color.Green;
}
else
{
row.DefaultCellStyle.BackColor = Color.Red;
}
}
}
答案 2 :(得分:0)
试试这个:
foreach (DataGridViewRow row in this.DataGridView1.Rows)
{
if (row.Cells[5].Text == "ok")
{
row.DefaultCellStyle.BackColor = Color.Green;
}
else
{
row.DefaultCellStyle.BackColor = Color.Red;
}
}
此致
答案 3 :(得分:0)
我在自己的项目中这样做。
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
row.DefaultCellStyle.BackColor = (row.Cells[5].Text == "ok")? Color.Green:Color.Red;
}
如果仍然无效,请尝试删除该datagridview并重新添加。 请务必将其再次命名为dataGridView1并附加其相应的事件。