2011-07-27 79 views
4

我想更改winforms中滚动条的实际栏/大拇指部分的大小,但我找不到这样做的方法。无论需要滚动多少,拇指约为实际滚动区域的1/10。无论我需要向下滚动1行还是1000行,这都是一样的。我想要调整它的大小,具体取决于滚动的大小,或者至少使滚动区域大小的50%。更改winforms中滚动条的大小

回答

2

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

3

的从包含一些属性来调整滚动如:AutoScrollMargin, AutoScrollMinSize, AutoScrollOffset,并且它也有HorizontalScrollVerticalScroll,最后两个属性表示形式的virtecal和水平滚动条,它们也暴露了一些属性,如Minimum, Maximum, SmallChange, LargeChange, Value..,如果使用所有那些不符合您的要求,那么您应该使用自定义Scrollbar。将ScrollBar添加到窗体并禁用窗体滚动条,并且每当添加控件以形成窗体或更改窗体大小时调整自定义滚动条...

+3

除了永远不要使用自定义的滚动条。正确配置后,一切都按预期工作。 –

+1

我不想调整滚动,我只是想改变酒吧的长度。您拖动的部分进行滚动。我想更改实际的vScrollBar控件http://msdn.microsoft.com/en-us/library/system.windows.forms.vscrollbar.aspx – Jack

+0

@Jack:就是这样,你不能访问底层直接显示,表格只显示'VertiaclScroll'属性,但它的类型是'VScrollProperties'而不是'VScrollBar' !.所以如果该'VScrollProperties'和其他表单属性的预定义属性不能帮助你。那么你别无选择,只能使用自定义滚动条。 –

1

滚动条控件的缩略图大小与该控件的ScrollBarName.MaximumScrollBarName.LargeChange值之间的差值成正比。

要使用ScrollBarName.LargeChangeScrollBarName.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