Есть ли способ заставить DataGridView запустить событие CellFormatting для всех ячеек?

Мы используем событие CellFormatting для окрашивания ячеек кода в различных сетках по всему нашему приложению.

У нас есть некоторый общий код, который обрабатывает экспорт в Excel (и печатает), но делает это в черно-белом режиме. Теперь мы хотим изменить это и выбрать цвет из сетки.

Этовопрос отве помог (и это работает) ... за исключением проблемы с большими сетками, которые выходят за рамки одного экрана. Части сетки, которые еще не отображались на экране, (по логике) никогда не запускают свой код CellFormatting, поэтому их основной цвет никогда не устанавливается. В результате в Excel цветовое кодирование исчезает На полпути вниз по странице.

Кажется, есть три решения:

1) Скажите пользователю, что он должен прокрутить все части сетки, прежде чем выполнять экспорт в Excel.Ha! Не серьезное решение

2) Программно прокрутите все части сетки перед выполнением экспорта в Excel. Только чуть менее ужасно, чем (1)

3) В нашем коде «Экспорт в Excel» запустите что-нибудь вверху, что говорит DataGridView рисовать / форматировать всю область, наприме

  MyDataGridView.FormatAllCells()

Есть ли что-то подобное?

О, и есть четвертый вариант, но это будет касаться огромного количества существующего кода:

4) Прекратите использовать событие CellFormatting, отформатируйте ячейки во время загрузки. Проблема в том, что нам пришлось бы переоснастить каждую сетку в нашем приложении, поскольку CellFormatting - это способ, которым мы делали это с года.

Ответы на вопрос(5)

Ваш ответ на вопрос