DataGridView [c, r] (.get_Item ()) очень медленно? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть событие 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 секунд.

Мне нужно нарисовать линии между видом сетки и списком (если эти строки не отображаются, линия заканчивается в верхней или нижней части окна просмотра сетки).Так что пейджинг не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...