当属性更改时,DataGridView控件将滚动到顶部

时间:2011-03-01 20:11:27

标签: c# datagridview

在Windows窗体上,我有一个DataGridView控件,其中包含由数据源(数据绑定)填充的记录。每条记录都显示一个数据对象。

并非所有行都显示:例如,前10行。因此用户可以向下滚动以查看其他记录。没什么特别的。

但是当用户在滚动后点击一行时,行对象的数据属性正在改变,这会刷新DataGridViewand - 它“滚动”到数据网格的顶部(可能是整个{{1}令人耳目一新)。这是不可取的。

如何在记录更新期间保留当前滚动位置?

1 个答案:

答案 0 :(得分:7)

您可以使用DataGridView的FirstDisplayedScrollingRowIndex属性。

获取/设置DGV上显示的第一行的索引。

像这样使用:

        int rowIndex = dataGridView.FirstDisplayedScrollingRowIndex;

        // Refresh your DGV.

        dataGridView.FirstDisplayedScrollingRowIndex = rowIndex;

当然,如果对您的DGV进行排序或添加/删除行,这将无法正常工作(您确实说过您正在更新,所以也许您可以。)