Элемент управления DataGridView прокручивается вверх при изменении свойства - PullRequest
8 голосов
/ 01 марта 2011

В форме Windows у меня есть элемент управления DataGridView с записями, которые заполняются источником данных (привязка данных). Каждая запись представляет объект данных.

Отображаются не все строки: например, только первые 10. Таким образом, пользователь может прокрутить вниз, чтобы увидеть другие записи. Ничего особенного в этом нет.

Но когда пользователь нажимает на строку после прокрутки, свойство данных объекта строки изменяется, и это обновляет DataGridViewand - оно «прокручивается» к вершине сетки данных (возможно, обновляется целое DataGridView) , Это не желательно.

Как сохранить текущую позицию прокрутки во время обновления записи?

1 Ответ

8 голосов
/ 01 марта 2011

Вы можете использовать свойство DataGridView FirstDisplayedScrollingRowIndex .

Получает / устанавливает индекс первой строки, отображаемой на вашем DGV.

Используйте это так:

        int rowIndex = dataGridView.FirstDisplayedScrollingRowIndex;

        // Refresh your DGV.

        dataGridView.FirstDisplayedScrollingRowIndex = rowIndex;

Конечно, это не будет работать правильно, если вы сортируете или добавляете / удаляете строки в DGV (вы говорили, что обновляете, поэтому, возможно, у вас все в порядке).

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