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