2011-07-27 122 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