I use the DataGridView's
FirstDisplayedScrollingRowIndex Property[
^]
Like this: (my DataGridView is named gvMast)
Private intSaveScrollingIndex As Integer = 0
Private Sub gvMast_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles gvMast.Scroll
intSaveScrollingIndex = gvMast.FirstDisplayedScrollingRowIndex
End Sub
Private Sub LoadGrid()
If gvMast.Rows.Count <= intSaveScrollingIndex _
OrElse intSaveScrollingIndex = -1 Then
intSaveScrollingIndex = 0
End If
If gvMast.Rows.Count > 0 Then
gvMast.FirstDisplayedScrollingRowIndex = intSaveScrollingIndex
End If
End Sub