这段代码
CurrentSelectedRow = Me.dgvPrevIoUslyCut.CurrentRow.Index
存储用户在数据网格视图控件中单击的当前所选行.
刷新数据网格视图的数据源后,此代码
Me.dgvPrevIoUslyCut.Rows(CurrentSelectedRow).Selected = True
以编程方式重新选择同一行.
之后立即
Me.dgvPrevIoUslyCut.CurrentRow.Index
始终设置为零,而不是您期望的变量CurrentSelectedRow.
为什么以编程方式设置选择行索引不会导致属性CurrentRow.Index设置为相同?
CurrentRow是包含当前活动单元格的行.将DataGridView绑定到外部数据源时,此属性将重置为其默认值,即第一列中的第一个单元格.
SelectedRow是当前选中/突出显示的行.它可能是一行或多行,具体取决于MultiSelect属性.要选择行,您必须将其Selected属性设置为true.
通过将行设置为选中,您只需将其保持突出显示而不使其处于活动状态.
要保留当前单元格,您必须存储当前单元格的行和列索引.要使它们使用CurrentCellAddress属性.刷新DataSource后,使用这些索引设置CurrentCell属性.
dataGridView1.CurrentCell = dataGridView1.Rows(rowindex).Cells(columnindex);