这是我按 Enter 键移动到另一个单元格(如 TAB)的工作代码:
Private Sub dvFromAlloc_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dvFromAlloc.KeyDown
If e.KeyCode = Keys.Enter Then
Dim colm As Integer = dvFromAlloc.ColumnCount - 1
Dim row As Integer = dvFromAlloc.RowCount - 1
Dim currCell As DataGridViewCell = dvFromAlloc.CurrentCell
If currCell.ColumnIndex = colm Then
If currCell.RowIndex < row Then
'gets the next row and the first selected index
dvFromAlloc.CurrentCell = dvFromAlloc.Item(0, currCell.RowIndex + 1)
End If
Else
'move in next col in the current row
dvFromAlloc.CurrentCell = dvFromAlloc.Item(currCell.ColumnIndex + 1, currCell.RowIndex)
End If
e.Handled = True
End If
End Sub
Private Sub dvFromAlloc_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dvFromAlloc.CellEndEdit
isEdited = True
iColumnindex = e.ColumnIndex
irowindex = e.RowIndex
End Sub
Private Sub dvFromAlloc_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dvFromAlloc.SelectionChanged
If isEdited Then
isEdited = False
dvFromAlloc.CurrentCell = dvFromAlloc.Item(iColumnindex + 1, irowindex)
End If
End Sub
这里的主要问题是,当我在最后一行时,我必须在编辑一个单元格后按两次回车,然后才能移动到另一个单元格,但如果我在其他行,我只会在编辑后按一次回车单元格,它将移动到下一个单元格。
谢谢您的帮助