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

本文关键字:滚动条 DataGridView 更新 | 更新日期: 2023-09-27 18:27:00

我正在按如下方式绑定我的网格:

dataGridView1.DataSource = new BindingSource();

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

dataSource经常更新(它正在读取的文件大约每2毫秒更新一次)。所以当我滚动时,滚动条会在刷新时跳到它的原始位置。我刷新如下:

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

每次刷新数据网格视图时,如果不重置滚动条,我如何滚动?

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

看看这个。尽管问题是关于Winforms DataGrid的,但答案适用于DataGridView。您需要在重新加载之前存储FirstDisplayedScrollingRowIndex,并在重新加载之后恢复它。

我知道你发布这个问题已经有一段时间了,但我自己也遇到了这种问题。需要检查的一件事是,当您的网格更新时,确保您是而不是设置CurrentCell属性

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

YourGrid.CurrentCell = YourGrid[0, row];

希望这能有所帮助。

DC