ma scusa la i-esima riga ha il valore forecolor che dici te (perchè hai controllato) ma hai controllato se è giusta la i-esima riga su cui elabora?
esempio:
i = 2
se tu controlli row[i].forecolor troverai #ff0000 che è il colore che gli vuoi dare ma row[i].value è ciò che cerchi? ma sopratutto rows.lenght è uguale a 2? visto che la tua i-esima riga è anche l'ultima (o dovrebbe esserlo)?
piccolo hack che non ricordo se si può fare su net, non ti conviene prima assegnare tutte le proprietà, comprese il forecolor e poi aggiungere la riga al datagrid?