0

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

4

2 回答 2

0

在此处查看MSDN 文档AutoScroll,了解该属性的确切含义和作用。它只会使容器具有大于其可见边界的虚拟大小。它实际上并没有为你做滚动。

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

于 2013-01-08T12:53:12.413 回答
0

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

您可以使用以下方式设置滚动条位置:

this.VerticalScroll.Value = Y;

然后你必须找出你的Rectanglevia的位置:

Rectangle.Location.Y;

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

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

水平:

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

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

于 2013-01-08T12:54:40.577 回答