【问题标题】:Swipe Scroll with a datagridview使用 datagridview 滑动滚动
【发布时间】:2015-12-30 18:40:26
【问题描述】:

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

【问题讨论】:

  • 我正在尝试做和你一样的事情。我只能找到水平和垂直滚动偏移量,但其中一个是只读的,因此您无法使用它们上下移动。

标签: vb.net winforms scroll datagridview windows-7


【解决方案1】:

我就是这样完成了你的要求。

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

【讨论】:

    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多