C# 还记得选择DataGridViewRows的顺序吗?
我想知道是否可以记住选择行的顺序。我目前有一个DataGridView,它绑定到一个项目集合。在使用键盘选择行的过程中,OnRowStateChanged可能会错误地激发 有什么想法吗 编辑C# 还记得选择DataGridViewRows的顺序吗?,c#,winforms,C#,Winforms,我想知道是否可以记住选择行的顺序。我目前有一个DataGridView,它绑定到一个项目集合。在使用键盘选择行的过程中,OnRowStateChanged可能会错误地激发 有什么想法吗 编辑 我使用的是SelectionMode.FullRowSelect,在选择新行时,当前选择似乎丢失。 感谢Rohan您可以捕获RowEnter和RowLeave事件,以跟踪访问行的顺序。这些处理程序的参数包含具有行索引的事件参数。在处理程序主体中,您可以使用链接列表作为FIFO队列,以遵循访问行的顺序。刚
我使用的是SelectionMode.FullRowSelect,在选择新行时,当前选择似乎丢失。
感谢Rohan您可以捕获RowEnter和RowLeave事件,以跟踪访问行的顺序。这些处理程序的参数包含具有行索引的事件参数。在处理程序主体中,您可以使用链接列表作为FIFO队列,以遵循访问行的顺序。刚刚验证,第一个选定的行位于列表的末尾:
private void button1_Click(object sender, EventArgs e)
{
for (int i = dataGridView1.SelectedRows.Count - 1; i >= 0; --i)
{
var r = dataGridView1.SelectedRows[i];
MessageBox.Show(r.Cells[0].Value.ToString());
}
}
这看起来不错,但是,当您使用键盘执行选择时,顺序不正确。请尝试选择一行,然后按住shift键并使用向上箭头键选择上面的行。此答案是确定的,因为SelectedRows按相反顺序保存了用户选择行;请在此处查看我的asnwer: