我正在绑定我的网格:
dataGridView1.DataSource = new BindingSource();
dataGridView1.DataSource = tableData;
(tableData是自定义对象的ArrayList)
dataSource经常更新(它正在读取的文件大约每2毫秒更新一次)。所以当我滚动时,滚动条会在刷新时跳转到它的原始位置。我这样刷新:
((CurrencyManager)dataGridView1.BindingContext[tableData]).Refresh();
(每1秒钟发生一次)
每次刷新datagridview时,如何在不重置滚动条的情况下滚动?
答案 0 :(得分:5)
看看this。虽然问题是关于Winforms DataGrid,但答案适用于DataGridView。您需要在重新加载之前存储FirstDisplayedScrollingRowIndex并在之后恢复它。
答案 1 :(得分:0)
我知道你发布这个问题已经有一段时间但我自己也遇到过这种问题。要检查的一件事是确保在网格更新时 不 设置 CurrentCell 属性
以下代码会导致您的滚动位置重置。您告诉它查看特定行以及该行中的第一个单元格。
YourGrid.CurrentCell = YourGrid[0, row];
希望这有帮助。
DC