在winforms中更改滚动条的大小

我想在winforms中更改滚动条的实际条/拇指部分的大小,但我找不到这样做的方法。 无论滚动多少,拇指大约是实际滚动区域的1/10。 无论我是向下滚动1行还是1000行,都是一样的。 我希望它的大小可以根据滚动的大小进行调整,或者至少使其大小达到滚动区域大小的50%。

from包含一些属性来调整滚动,例如: AutoScrollMargin, AutoScrollMinSize, AutoScrollOffset ,它还有HorizontalScrollVerticalScroll ,最后两个属性代表表单的virtecal和horizo​​ntal滚动条,它们还显示一些属性,如Minimum, Maximum, SmallChange, LargeChange, Value.. ,如果使用所有那些不满足您的要求,那么您应该使用自定义Scrollbar 。 将ScrollBar添加到窗体并禁用窗体滚动条,并在控件添加到窗体或更改其大小时调整自定义滚动条…

其实我明白了。 this.vScrollBar1.LargeChange = this.vScrollBar1.Maximum / 2; 将拇指更改为轨道长度的一半。

滚动条控件的拇指条大小与该控件的ScrollBarName.MaximumScrollBarName.LargeChange值之间的差异成正比。

要使用ScrollBarName.LargeChangeScrollBarName.LargeChange一个比例偏移值,以便使用时滚动条控件的行为符合预期。 以下示例演示了如何进行此偏移计算以及如何在实际应用程序上下文中应用它。

偏移计算:

  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