我有一个带Date
列的DataGridView控件。我想根据此列中的值与当前日期相比设置每行的颜色:
如果我的网格中的日期至少还有15天,请保留默认颜色。如果我的网格中的日期仅为5天,请使用ORANGE颜色。如果日期仅为1天,请使用红色。
我该怎么做?
答案 0 :(得分:0)
创建两个函数,一个来自遍历所有行,另一个用于着色行中的所有单元格。
private void ColorDates()
{
if (dataGridView1.Rows.Count <= 0)
{
MessageBox.Show("Datagridview is empty!");
return;
}
foreach(DataGridViewRow row in dataGridView1.Rows)
{
DateTime value = Convert.ToDateTime(row.Cells["DateColumn"].Value);
DateTime citeria = new DateTime(2018, 28, 02);
int result = DateTime.Compare(value, citeria);
if (result < 0) //value is earlier than citeria
ColorRow(row, Color.Red);
else if (result == 0) //Value is equal to citeria
ColorRow(row, Color.Green);
else if (result > 0) //value is later than citeria
ColorRow(row, Color.Blue);
}
}
private void ColorRow(DataGridViewRow row, Color color)
{
foreach(DataGridViewCell cell in row.Cells)
{
cell.Style.BackColor = color;
}
}
使用ColorDates()