Я полагаю, что решение заключается в том, КОГДА вы устанавливаете цвет, а не метод, в котором вы это делаете. Было предложено несколько различных событий, и некоторые действительно будут работать. Одна из проблем, связанных с использованием событий форматирования ячейки, привязки данных, завершения или даже событий рисования, заключается в том, что они запускаются несколько раз. Из того, что я понял, есть проблема с элементом управления datagridview в том, что вы не можете изменить цвет любой из ячеек, пока ПОСЛЕ формы не будет показано. Таким образом, методы, которые выполняются, или события, которые запускаются до вызова Shown (), не изменят цвет. События, которые рассматриваются как решение проблемы, обычно работают, но поскольку они вызываются много раз, возможно, это не самый эффективный ответ.
Вероятно, самое простое решение этой проблемы - поместить ваш код для заполнения / окрашивания ваших сеток в методе Shown () формы вместо конструктора. Ниже приведена ссылка на сообщение на форумах msdn, которое сообщило мне о решении, оно помечено как ответ на 3/4 пути вниз по странице.
MSDN на форуме с решением