使用数据网格视图滑动滚动

Swipe Scroll with a datagridview

有没有办法用datagridview调整滚动位置?我想实现让用户用手指上下或左右滚动,而不是将滚动条用于触摸屏目的。我知道某些控件内置了 AutoScrollPosition,但是我可以使用什么来更改滚动位置以使用 winforms 上的 datagridview 随手指移动? OS 是 Windows 7,框架是 4。我想在他们开始进行平移动作以打开平移并让它们滚动时制作它。

这就是我完成您所要求的方法。

Private Sub DataGridView_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseMove
    Select Case e.Button
        Case MouseButtons.Left
            Dim mouseMovement As Point = GetMouseMovement(e.Location)
            If Panning Then
                If mouseMovement.X = 0 Then
                    Me.AutoScrollOffset = Point.Round(New PointF(-AutoScrollOffset.X, mouseMovement.Y - AutoScrollOffset.Y))
                ElseIf mouseMovement.Y = 0 Then
                    Me.AutoScrollOffset = Point.Round(New PointF((mouseMovement.X / Convert.ToSingle(Math.Abs(mouseMovement.X))) * 10 - AutoScrollOffset.X, -AutoScrollOffset.Y))
                Else
                    Me.AutoScrollOffset = Point.Round(New PointF((mouseMovement.X / Convert.ToSingle(Math.Abs(mouseMovement.X))) * 10 - AutoScrollOffset.X, mouseMovement.Y - AutoScrollOffset.Y))
                End If
                Me.ClearSelection()
            End If
    End Select
End Sub

''' <summary>
''' Checks if there is any mouse movement based on passed in point
''' </summary>
''' <remarks></remarks>
Private Function GetMouseMovement(ByVal point As Point) As Point
    If Math.Abs(mouseDownPosition.X - point.X) >= SystemInformation.DoubleClickSize.Width Or
           Math.Abs(mouseDownPosition.Y - point.Y) >= SystemInformation.DoubleClickSize.Height Then
        _panning = True
        Return New Point(point.X - mouseDownPosition.X, point.Y - mouseDownPosition.Y)
    End If
    _panning = False
    Return New Point(0, 0)
End Function