DataGridView在更新和重新加载后保留选定的索引和滚动位置

时间:2016-01-13 20:59:02

标签: c# winforms datagridview datagridviewrow

我遇到了一些问题,现在不知道如何保留DataGridView中的滚动位置。

我有1000多行,滚动回编辑的行很痛苦。如何在刷新数据后保留滚动位置并滚动到已编辑的行?

3 个答案:

答案 0 :(得分:6)

保存行索引,进行刷新,然后设置FirstDisplayedScrollingRowIndex属性。

int index = dataGridView1.CurrentRow.Index;

/*
 * Your Refresh Code
 */

dataGridView1.FirstDisplayedScrollingRowIndex = index;

答案 1 :(得分:3)

您可以在重新加载数据之前获取当前行索引:

int currentIndex= dataGridView1.CurrentRow.Index;

然后在重新加载数据后,您可以使用以下任一选项:

滚动并设置当前行:

this.dataGridView1.CurrentCell =  this.DataGridView1.Rows[currentIndex].Cells[0];

滚动:

dataGridView1.FirstDisplayedScrollingRowIndex = currentIndex;

答案 2 :(得分:0)

void SomeMethod()
{
    if (dataGridView != null &&
        dataGridView.CurrentRow != null)
            this.Invoke(new Action(GetScrollingIndex));
    UpdateTable();
    if (dataGridView != null &&
        dataGridView.CurrentRow != null)
            this.Invoke(new Action(SetScrollingIndex));
}
void GetScrollingIndex()
{
    scrollingIndex = dataGridView.FirstDisplayedCell.RowIndex;
}
    
void SetScrollingIndex()
{
    dataGridView.FirstDisplayedScrollingRowIndex = scrollingIndex;
}