For changing row's background color and Font color in a datagridview use following lines of code:
int n = 0;
foreach (DataGridViewRow rw in dataGridView1.Rows)
{
if (rw.Index != dataGridView1.NewRowIndex)
{
if (String.IsNullOrEmpty(rw.Cells[0].Value.ToString()) != true)
{
DataGridViewRow bandrow = dataGridView1.Rows[n];
DataGridViewBand CatBand = bandrow;
DataGridViewCellStyle Rwstyle = new DataGridViewCellStyle();
Rwstyle.BackColor = Color.Lavender;
Rwstyle.ForeColor = Color.MediumBlue;
CatBand.DefaultCellStyle = Rwstyle;
}
}
n++;
}
For rest of the points please explain your problem little more.