У меня есть событие RowsAdded
для отображения ячеек с разными цветами в соответствии со значениями в представлении сетки данных.
private void DGV_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
for (int i = 0; i < e.RowCount; i++)
{
var r = i + e.RowIndex;
foreach (var c in _cols) // 5 columns
{
var cell = DGV[c, r]; // 4.5 second
......
cell.Style.BackColor = .....
}
Однако для строки var cell = DGV[c, r];
требуется 4,5 секунды (средства диагностики) для представления таблицы данных с примерно 25K строками.Я пробовал и DGV[intColIndex, r]
, и DGV[stringColName, r]
, и нет большой разницы.Это способ получить ячейку быстрее?
Обновление:
Я обнаружил, что после запуска приложения продолжайте закрывать и снова открывать форму, и она будетсократите время до 2 секунд.
Мне нужно нарисовать линии между видом сетки и списком (если эти строки не отображаются, линия заканчивается в верхней или нижней части окна просмотра сетки).Так что пейджинг не будет работать.