有没有办法确定用户点击/拖动滚动条的位置?

时间:2013-07-01 13:55:11

标签: .net vb.net winforms scrollbar

我有一个带有文本框的winforms VB.NET应用程序,其中包含一个内存地址列表和一个垂直滚动条。我希望能够根据用户在滚动条中单击或拖动的位置滚动文本框。例如:

如果用户点击了滚动条的上/下箭头部分,那么我希望滚动条值改变1(小改变值)。

如果点击'频道'(上/下箭头和拇指之间的部分),那么我想滚动一些计算的数量。

如果拖动拇指,我只想使用滚动条的值。 (大变化值)

毫无疑问,我在这里遗漏了一些明显的东西!

2 个答案:

答案 0 :(得分:0)

据我所知,VScrollBar只有SmallChangeLargeChange属性进行值设置..

仅供样品使用..

VScrollBar1.Minimum = 0
VScrollBar1.Maximum = 100
VScrollBar1.SmallChange = 1
VScrollBar1.LargeChange = SetValue()


Function SetValue() as Integer '----> result must be < VScrollBar1.Max

    'Return Integer value

End Function

答案 1 :(得分:0)

要了解用户如何点击ScrollBar,请使用Scroll事件并查看ScrollEventArgs的Type属性:

Private Sub VScrollBar1_Scroll(sender As System.Object, e As System.Windows.Forms.ScrollEventArgs) Handles VScrollBar1.Scroll
    If e.Type = ScrollEventType.SmallIncrement Then
        'User clicked the right (or bottom) scroll arrow
    End If

    If e.Type = ScrollEventType.SmallDecrement Then
        'User clicked the left (or top) scroll arrow
    End If

    If e.Type = ScrollEventType.LargeIncrement Then
        'User clicked the area between the right (or bottom) scroll arrow and the thumb
    End If

    If e.Type = ScrollEventType.LargeDecrement Then
        'User clicked the area between the left (or top) scroll arrow and the thumb
    End If
End Sub

请注意,这些滚动类型还可以指示用户是否按下了键盘键进行滚动。例如,向上(或向左)箭头键将具有SmallDecrement类型。