Полосы прокрутки c # продолжают сбрасываться при обновлении DataGridView - PullRequest
3 голосов
/ 06 марта 2012

Я связываю свою сетку так:

dataGridView1.DataSource = new BindingSource();

dataGridView1.DataSource = tableData; (tableData - это ArrayList пользовательских объектов)

Источник данных обновляется очень часто (файл, из которого он читает, обновляется каждые 2 мс). Поэтому, когда я прокручиваю, полоса прокрутки переместится в исходное положение после обновления. Я обновляюсь так:

((CurrencyManager)dataGridView1.BindingContext[tableData]).Refresh(); (это происходит раз в ~ 1 секунду)

Как прокручивать без сброса полосы прокрутки каждый раз, когда обновляется сетка данных?

Ответы [ 2 ]

5 голосов
/ 06 марта 2012

Взгляните на это .Хотя вопрос касается Winforms DataGrid, ответ применим к DataGridView.Вам необходимо сохранить FirstDisplayedScrollingRowIndex до перезагрузки и восстановить его после.

0 голосов
/ 16 января 2013

Я знаю, что прошло много времени с тех пор, как вы опубликовали этот вопрос, но я сам столкнулся с такой проблемой. Необходимо убедиться, что вы не устанавливаете свойство CurrentCell при обновлении вашей сетки

Код, подобный следующему, приведет к сбросу положения прокрутки. Вы просите его просмотреть конкретную строку и первую ячейку в этой строке.

YourGrid.CurrentCell = YourGrid[0, row];

Надеюсь, это поможет.

DC

...