我想在winforms中更改滚动条的实际条/拇指部分的大小,但我找不到这样做的方法。无论滚动多少,拇指大约是实际滚动区域的1/10。无论我是向下滚动1行还是1000行,都是一样的。我希望它的大小可以根据滚动的大小进行调整,或者至少使其大小达到滚动区域大小的50%。
答案 0 :(得分:4)
from包含一些属性来调整滚动,例如:AutoScrollMargin, AutoScrollMinSize, AutoScrollOffset
,它还有HorizontalScroll
和VerticalScroll
,最后两个属性代表的是virtecal和horizontal的滚动条。表单,他们还公开了一些属性,如Minimum, Maximum, SmallChange, LargeChange, Value..
,如果使用所有这些属性不满足您的要求,那么您应该使用自定义Scrollbar
。将ScrollBar
添加到表单并禁用表单滚动条,并在控件添加到表单或更改其大小时调整自定义滚动条...
答案 1 :(得分:2)
其实我明白了。 this.vScrollBar1.LargeChange = this.vScrollBar1.Maximum / 2;
将拇指更改为曲目长度的一半。
答案 2 :(得分:1)
滚动条控件的拇指条大小与该控件的ScrollBarName.Maximum
和ScrollBarName.LargeChange
值之间的差异成正比。
要使用ScrollBarName.LargeChange
,ScrollBarName.Maximum
需要一个比例偏移值,以便使用时滚动条控件的行为符合预期。以下示例演示了如何进行此偏移计算以及如何在实际应用程序上下文中应用它。
偏移计算:
ScrollBarName.Maximum = MyMaximum + MyLargeChange - 1 ' LargeChange Usage Offset Calcualtion
申请背景:
'*** Using Simplified Values To Avoid Confusion ***
Dim ScrollBarName As New VScrollBar ' Or HScrollBar Control
Dim MyMaximum As Integer = 100 ' Your "off screen" calculated value
Dim MySmallChange As Integer = 10 ' MySmallChange <= MyLargeChange <= MyMaximum
Dim MyLargeChange As Integer = 50 ' MyLargeChange <= MyMaximum (Example produces thumbar sized {(MyLargeChange / ScrollBarName.Maximum) %} Clientsize.width
Me.controls.add(ScrollBarName) ' Add Your Control
ScrollBarName.Dock = DockStyle.Right ' Dock bottom for HScrollBar
ScrollBarName.SmallChange = MySmallChange
ScrollBarName.LargeChange = MyLargeChange
ScrollBarName.Maximum = MyMaximum + MyLargeChange - 1 ' LargeChange Usage Offset Calcualtion
ScrollBarName.Value = 20 ' The scrollBar movement value whereby ScrollBarName.Value <= MyMaximum