c#当DataGridView更新时,滚动条会不断重置

c#当DataGridView更新时,滚动条会不断重置,c#,.net,datagridview,scrollbar,C#,.net,Datagridview,Scrollbar,我将绑定我的网格,如下所示: dataGridView1.DataSource=newbindingsource() dataGridView1.DataSource=tableData(tableData是自定义对象的ArrayList) 数据源经常更新(从中读取的文件大约每2毫秒更新一次)。因此,当我滚动时,滚动条将在刷新时跳转到其原始位置。我是这样说的: ((CurrencyManager)dataGridView1.BindingContext[tableData]).Refresh()

我将绑定我的网格,如下所示:

dataGridView1.DataSource=newbindingsource()

dataGridView1.DataSource=tableData(tableData是自定义对象的ArrayList)

数据源经常更新(从中读取的文件大约每2毫秒更新一次)。因此,当我滚动时,滚动条将在刷新时跳转到其原始位置。我是这样说的:

((CurrencyManager)dataGridView1.BindingContext[tableData]).Refresh()(每~1秒发生一次)


每次刷新datagridview时,如何在不重置滚动条的情况下进行滚动

看一看。尽管问题是关于Winforms DataGrid的,但答案适用于DataGridView。您需要在重新加载之前进行存储,然后再进行恢复。

我知道您发布此问题已经有一段时间了,但我自己也遇到了此类问题。需要检查的一件事是确保在网格更新时,您没有设置CurrentCell属性

以下代码将导致您的滚动位置重置。您告诉它查看某一行,以及该行中的第一个单元格

YourGrid.CurrentCell = YourGrid[0, row];
希望这有帮助


DC

这似乎有效。鉴于这是一个非常大的数据集,滚动不是很平滑。我可以将该条拖动一定量,然后它将停止跟随我的光标,因此我必须再次抓住它并重复。这仅仅是因为它非常大,还是因为当它刷新/处理行索引时,它停止了拖动运动?滚动速度也将取决于硬件。你可以试试。我没有用过这个,所以我不确定它是否真的有效。