设置GridControl刷新数据时始终保持当前查看的位置

Devexpress的GridControl使用的频率非常高,但是每一次给GridControl赋值后,总是会跳到最顶上,如果这个表格的数据一直刷新,那么使用体验就非常不好了,这时候就需要让GridControl始终保持在当前滚动条的位置,这样才能提高实际的使用效果。

1.首先我们需要给gridView1绑定一个TopRowChanged事件,topIndex1是一个默认值为-1的int型全局变量,储存滚动条位置,具体代码如下:

        /// <summary>
        /// 获取滚动条位置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gridView1_TopRowChanged(object sender, EventArgs e)
        {
            topIndex1 = gridView1.TopRowIndex;
        }

2.在每一次数据刷新时,重新指定表格当前滚动条位置,这样每一次赋值后就会保持在当前查看的位置了。

        //填充数据,并回到上次滚动条所在位置
        gridControl1.DataSource = dataTable;
        gridView1.TopRowIndex = topIndex1;

效果图如下:

THE END