.net 自动将焦点移动到下一个单元格datagridview

.net 自动将焦点移动到下一个单元格datagridview,.net,winforms,datagridview,focus,cell,.net,Winforms,Datagridview,Focus,Cell,我有一个datagridview(DGV),其中我希望行的第一个单元格是序列号,所以我编写了这段代码 Private Sub dgvStudents_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVStudents.RowEnter Dim RowIndex As Integer = e.RowIndex

我有一个datagridview(DGV),其中我希望行的第一个单元格是序列号,所以我编写了这段代码

  Private Sub dgvStudents_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVStudents.RowEnter
        Dim RowIndex As Integer = e.RowIndex
        Debug.Print(RowIndex.ToString)
        With DGVStudents
            .Rows(e.RowIndex).Cells(0).Value = e.RowIndex + 1
            If .Rows(e.RowIndex).Cells(0).Selected = True Then
                .Rows(e.RowIndex).Cells(0).Selected = False
                .Rows(e.RowIndex).Cells(1).Selected = True
            End If
        End With
        DGVStudents.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
    End Sub

主要目的是输入新行,对第一个单元格编号并将焦点移到下一个单元格。将它置于编辑模式,但我似乎可以让它工作。有什么帮助吗?

我相信您实际上处于第一个单元格的编辑模式,也许您可以将其推入
CellEnter
事件,如果是第一个单元格,请使用SendKeys.Send(“{TAB}”)将您移动到下一个单元格。此外,如果用户不打算更改该值,请将第一列也设置为
只读

您还可以通过设置
DataGridView
CurrentCell
属性来进行尝试

datagridview1.CurrentCell = Rows(e.RowIndex).Cells(1);

感谢您的回复,但是不鼓励使用sendkeys,因为它会对不同的osOk产生不同的影响。然后,我建议您尝试设置
datagridview
CurrentCell
属性。我现在发现一个错误
操作无效,因为它会导致对setCurrentCellAddressCore函数的重新调用