Используйте Today
, если временная часть не нужна. A try catch
обрабатывает возможный ноль в поле даты. Необходимо использовать имя коллекции столбцов gridview в строке var EMIDate
, которая, вероятно, отличается от DataPropertyName. Так что для gridview в вашей рабочей процедуре, они, вероятно, одинаковы.
Проанализирован проект ОП. Кажется, что код не будет читать столбцы вне поля зрения, поэтому пришлось расширить DataGridView и панель для отображения столбца Date_1 без прокрутки. Кроме того, DataPropertyName не имеет подчеркивания. Скорректированный дизайн и код работ:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (this.dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "Date 1")
try
{
var EMIDate = Convert.ToDateTime(dataGridView1.Rows[e.RowIndex].Cells["date1DataGridViewTextBoxColumn"].Value);
if (EMIDate <= DateTime.Today)
{
e.CellStyle.BackColor = Color.Red;
}
}
catch
{
}
}
Обнаружено текстовое поле с неправильным именем. Возможно, textBox6 должен быть txtEMI6 для согласования с именами других элементов управления.