2013-01-08 104 views
0

在我的Winforms應用程序中,我有一個用戶控件,用作繪製各種2D圖形的「屏幕」。 我已經將其'AutoScroll'屬性設置爲true,並且當您縮放屏幕(即用戶控件)時,滾動條可以正常工作。現在,當我選擇任何形狀(如矩形或圓形等)並將其移動到超出可見範圍屏幕的一部分,我希望各自的滾動條自動滑動,以保持屏幕可見區域的形狀。 我需要設置滾動條的任何其他屬性?滾動條的自動滑動

回答

0

我不認爲有可能實現這一點,而不需要創建自己的方法。

您可以設置滾動條當前位置有:

this.VerticalScroll.Value = Y; 

然後,你必須找出通過你的Rectangle的位置:

Rectangle.Location.Y; 

因此,這應該爲你的垂直滾動條的工作:

this.VerticalScroll.Value = Rectangle.Location.Y; 

horzontal:

this.HorizontalScroll.Value = Rectangle.Location.X; 

與MouseDown事件相結合,它會做的伎倆。

+0

感謝您的提示。而不是給予矩形的價值,我增加了水平和垂直滾動值的固定值,直到鼠標移動。它的工作。 –

0

看看here at the MSDN documention正是AutoScroll財產是什麼和做什麼。它只是使容器具有比其可見邊界更大的虛擬尺寸。它實際上並沒有爲你滾動。

如果您希望控件在用戶拖動形狀時「移動」,則必須自行捕獲該操作並手動滾動該控件。我建議先從MouseDown和MouseMove事件開始。您需要一些邏輯來確定何時需要滾動以及實際滾動多少。