Datagridview.Rows(#)。选择不更新CurrentRow.Index

时间:2019-03-21 21:56:42

标签: vb.net

VB.Net 4.6.1 Windows窗体应用程序

我有一个绑定的datagridview,我试图对其进行排序和选择。数据加载正常,我可以单击标题(带有一些代码),并且排序工作良好。排序完成后,我正在尝试重新选择一条记录,但遇到了一些麻烦。

假设我有一个datagridview,其中有20条记录。在表单上,​​我还有一个运行以下命令的按钮:

MessageBox.Show(MyDataGridView.CurrentRow.Index.ToString)

我还有一个Sub处理MyDataGridView.Sorted,在其中有一条测试行,如下所示:

MyDataGridView.Rows(2).Selected = True

数据加载后,我单击第11条记录(selectionmode fullrowselect),然后单击按钮。框弹出并显示“ 10”(基于0的索引)。我单击我的列标题之一,数据进行排序,突出显示栏跳到第三条记录(索引2)。但是,当我按下currentrow.index按钮时,它仍然显示10。此外,如果按下向下箭头键,选择栏将跳至列表中的第11个(索引10)记录。

似乎使用“ Selected”不会更新currentrow.index值,并且由于它是只读的,所以我不能强行使用它。有人可以教我发生了什么事吗,因为这样一来,如果排序后向上和向下箭头键无法正常工作,我的用户就会感到困惑。

谢谢!

1 个答案:

答案 0 :(得分:0)

“当前”和“选定”不是同一意思。当可以选择多行但当前只有一行时,它们又如何呢?当前行是当前包含插入符号的行,而选定的行是突出显示的行。如果要将索引2的行作为当前行,则需要将该行中的一个单元格作为当前单元格,即,将该行中的一个单元格分配给CurrentCell属性。