c#当DataGridView更新时,滚动条会保持重置状态

时间:2012-03-06 16:52:40

标签: c# .net datagridview scrollbar

我正在绑定我的网格:

dataGridView1.DataSource = new BindingSource();

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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

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

YourGrid.CurrentCell = YourGrid[0, row];

希望这有帮助。

DC

相关问题