.net 自动将焦点移动到下一个单元格datagridview
我有一个datagridview(DGV),其中我希望行的第一个单元格是序列号,所以我编写了这段代码.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
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函数的重新调用