滚动条自动滑动

时间:2013-01-08 12:36:49

标签: c# winforms drawing scrollbar

在我的Winforms应用程序中,我有一个用户控件,用作绘制各种2D形状的“屏幕”。 我已将其“AutoScroll”属性设置为true,并且在缩放屏幕时滚动条工作正常(即用户控件) 现在,当我选择任何形状(如矩形或圆形等)并移动它以使其超出屏幕的可见部分时,我希望各自的滚动条自动滑动以便将该形状保持在屏幕的可见区域上。 我需要设置滚动条的任何其他属性??

2 个答案:

答案 0 :(得分:0)

详细了解AutoScroll属性是做什么的here at the MSDN documention。它只是使容器的虚拟大小大于其可见边界。它实际上并没有为你滚动。

如果您希望控件在拖动形状时与用户“移动”,则必须自己捕获该操作并手动滚动控件。我建议从MouseDown和MouseMove事件开始。您需要一些逻辑来确定何时需要滚动以及实际滚动多少。

答案 1 :(得分:0)

如果不创建自己的方法,我认为不可能实现这一目标。

您可以使用以下选项设置滚动条位置:

this.VerticalScroll.Value = Y;

然后你必须找到你Rectangle的位置:

Rectangle.Location.Y;

所以这适用于您的垂直滚动条:

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

表示平:

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

结合MouseDown-Event,它可以解决问题。