@Viorel After trying and researched I finally achieved the desired result
by using RowPrePaint Event and below is the right way:
private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
var ExpiryDate = Convert.ToDateTime(dgv.Rows[e.RowIndex].Cells[7].Value);
var TodayDate = DateTime.Today;
var Expired = ExpiryDate >= TodayDate;
var ExpiredToBe = ExpiryDate >= TodayDate.AddDays(-30);
if (Expired)
{
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightCoral;
}
else if (ExpiredToBe)
{
dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Gold;
}
}