C# 显示DataGridView';s第一行(向上滚动至第一行)

C# 显示DataGridView';s第一行(向上滚动至第一行),c#,winforms,datagridview,C#,Winforms,Datagridview,在我的DataGridView控件中,当用户点击Home按钮时,我想转到第一行 我捕获了keyDown事件,下面是代码: if (e.KeyCode == Keys.Home) { dgvMain.FirstDisplayedCell = dgvMain.Rows[0].Cells[0]; } 不起作用,这个也不起作用: if (e.KeyCode == Keys.Home) { dgvMain.FirstDisplayedScrollingRowIndex = dgvMain

在我的DataGridView控件中,当用户点击
Home
按钮时,我想转到第一行

我捕获了keyDown事件,下面是代码:

if (e.KeyCode == Keys.Home)
{
    dgvMain.FirstDisplayedCell = dgvMain.Rows[0].Cells[0];
}
不起作用,这个也不起作用:

if (e.KeyCode == Keys.Home)
{
    dgvMain.FirstDisplayedScrollingRowIndex = dgvMain.Rows[0].Index;
}
这些代码使网格稍微向上滚动,但不会滚动到第一行


我怎样才能专注于第一排?没有选择它。

我发现问题是。我仍然不明白为什么,但处理这件事使它起了作用:

if (e.KeyCode == Keys.Home)
{
    e.Handled = true;
    dgvMain.FirstDisplayedScrollingRowIndex = 0;
}

Home
不做任何事情(AFAIK),但当我处理它时,一切都正常。为什么?我不知道。

@Damith刷新没有帮助,没有。但当我将Handle设置为true时,它就起作用了。我真的很感激那些一找到解决方案就回答自己问题的人。:)如果我们发现某人面临与某人相同的问题,但即使在他们找到答案后仍然没有答案,这将是令人恼火的:(StackOverflow是程序员最大的在线问答资源,因此提供答案与找到答案一样重要。谢谢@SriramSakthivel@MahdiTahsildari-当SelectionMode为CellSelect时,
HOME
键由
DataGridView
处理,用于导航到一行中的第一个单元格。在这种情况下,按
END
键移到行的最后一个单元格。@Junaith Thank不知道这一点。我知道当按下
Home
时应该做些什么,但只要我使用RowSelect作为SelectionMode,我就感觉不到发生了什么。谢谢你的解释。@MahdiTahsildari-欢迎。另外,既然你提到你正在使用RowSelect,在这种情况下
Home
导航到第一行,
End
导航到最后一行。我想知道为什么您覆盖了DataGridView的默认行为。