The following code handles the situation when the user is in a DataGridView and they sort a column while scrolled over.   By default, if the user sorts the column it will snap the user back over to the left. This code will allow the user to maintain the position they are in.  First whenever the scroll event is activated, a modular level variable stores the stop position of the horizontal scroll bar.  Whenever a user sorts a column in the grid the horizontal scroll bar position is set to the modular level variable that was set in the prior event.
Private _cintHorizontalStop  As Integer '<-- modular level variable
Private Sub datagridview1_Scroll(ByVal
sender As System.Object, ByVal e As
System.Windows.Forms.ScrollEventArgs) Handles 
datagridview1 .Scroll
        Try
            If
e.ScrollOrientation = ScrollOrientation.HorizontalScroll Then
                  _cintHorizontalStop   =
e.NewValue
            End
If
        Catch
ex As Exception
            ErrorHandlerMuni(ex)
        End Try
    End Sub
    Private Sub 
datagridview1 _Sorted(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles 
datagridview1 .Sorted
        Try
            gridDGV.HorizontalScrollingOffset =  _cintHorizontalStop  
        Catch
ex As Exception
            ErrorHandlerMuni(ex)
        End Try
    End Sub
No comments:
Post a Comment