1

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

如果用户单击滚动条的向上/向下箭头部分,那么我希望滚动条值更改 1(smallchange 值)。

如果单击“通道”(向上/向下箭头和拇指之间的部分),那么我想滚动一些计算量。

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

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

4

2 回答 2

1

要了解用户如何单击 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。

于 2013-07-02T16:10:34.343 回答
0

据我所知,VScrollBar 仅具有值设置的属性SmallChange..LargeChange

这仅用于示例..

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
于 2013-07-01T14:47:24.280 回答