数据网格视图...以编程方式设置选择行索引不会将CurrentRow.Index设置为相同?

Kil*_*eys 6 vb.net indexing user-interface datagridview rows

这段代码

CurrentSelectedRow = Me.dgvPreviouslyCut.CurrentRow.Index
Run Code Online (Sandbox Code Playgroud)

存储用户在数据网格视图控件中单击的当前所选行.刷新数据网格视图的数据源后,此代码

Me.dgvPreviouslyCut.Rows(CurrentSelectedRow).Selected = True
Run Code Online (Sandbox Code Playgroud)

以编程方式重新选择同一行.

之后立即

 Me.dgvPreviouslyCut.CurrentRow.Index
Run Code Online (Sandbox Code Playgroud)

始终设置为零,而不是您期望的变量CurrentSelectedRow.

为什么以编程方式设置选择行索引不会导致属性CurrentRow.Index设置为相同?

Jun*_*ith 13

CurrentRow是包含当前活动单元格的行.将DataGridView绑定到外部数据源时,此属性将重置为其默认值,即第一列中的第一个单元格.

SelectedRow是当前选中/突出显示的行.它可以是一行或多行,具体取决于MultiSelect属性.要选择行,您必须将其Selected属性设置为true.

通过将行设置为选中,您只需将其保持突出显示而不使其处于活动状态.

要保留当前单元格,您必须存储当前单元格的行和列索引.让他们使用该CurrentCellAddress属性.刷新后,DataSource使用这些索引设置CurrentCell属性.

dataGridView1.CurrentCell = dataGridView1.Rows(rowindex).Cells(columnindex);
Run Code Online (Sandbox Code Playgroud)