我有一个带有文本框的 winforms VB.NET 应用程序,其中包含内存地址列表和垂直滚动条。我希望能够根据用户在滚动条中单击或拖动的位置来滚动文本框。例如:
如果用户单击滚动条的向上/向下箭头部分,那么我希望滚动条值更改 1(smallchange 值)。
如果单击“通道”(向上/向下箭头和拇指之间的部分),那么我想滚动一些计算量。
如果拇指被拖动,我只想使用滚动条的值。(大变化值)
毫无疑问,我在这里遗漏了一些明显的东西!
要了解用户如何单击 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。
据我所知,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