This really needs to be done on MouseDown. Mouse click cells on MouseUp:
Private Sub ProductsGrid_MouseDown(sender As Object, e As MouseEventArgs) Handles ProductsGrid.MouseDown Dim grid = DirectCast(sender, DataGridView) Dim info = grid.HitTest(eX, eY) If into.Type = DataGridViewHitTestType.RowHeader OrElse info.Type = DataGridViewHitTestType.TopLeftHeader Then grid.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2 grid.EndEdit() ElseIf grid.EditMode <> DataGridViewEditMode.EditOnEnter Then grid.EditMode = DataGridViewEditMode.EditOnEnter End If End Sub
Much more needs to be done, including handling Tab Key behavior. This behavior (and the aforementioned modification) is probably best performed in a user control that inherits a DataGridView.
source share