现在只需将90天加上有效期或从系统日期中减去90天即可。它会解决我的问题!我希望项目有效日期还剩90天时,行颜色为红色
private void DgvStock_CellFormatting_1(object sender, DataGridViewCellFormattingEventArgs e)
{
foreach (DataGridViewRow row in DgvStock.Rows)
{
DateTime exp = Convert.ToDateTime(row.Cells["ExpDate"].Value);
if (exp <= System.DateTime.Now)
{
row.DefaultCellStyle.ForeColor = Color.White;
row.DefaultCellStyle.BackColor = Color.Red;
}
}
}
答案 0 :(得分:1)
要添加或减去当前日期的天数,您可以这样做:
var date = DateTime.Now.AddDays(-90);
并更改您的代码,例如:
if (exp <= System.DateTime.Now)
{
row.CellStyle.ForeColor = Color.White;
row.CellStyle.BackColor = Color.Red;
}
else
{
row.CellStyle.ForeColor = Color.Black;
row.CellStyle.BackColor = Color.White; // or some other origin color
}
看起来像您错误地使用了DefaultCellStyle
。 DefaultCellStyle
更改所有行的样式,但是您需要更改特定行的颜色。
答案 1 :(得分:0)
怎么样
if (exp <= System.DateTime.Now.AddDays(-90))
{
//...
P.S:我将DateTime.Now移到循环外,并将其保存到变量一次。
答案 2 :(得分:0)
尝试一下:
foreach (DataGridViewRow row in DgvStock.Rows)
{
DateTime exp = DateTime.Parse(row.Cells["ExpDate"].Value + "");
if (exp <= System.DateTime.Today.AddDays(-90))
{
row.DefaultCellStyle.ForeColor = Color.White;
row.DefaultCellStyle.BackColor = Color.Red;
}
else
{
row.DefaultCellStyle.BackColor = Color.White;
}
}