滚动条的自动滑动
Posted
技术标签:
【中文标题】滚动条的自动滑动【英文标题】:auto sliding of Scrollbars 【发布时间】:2012-12-22 07:31:04 【问题描述】:在我的 Winforms 应用程序中,我有一个用户控件,它用作“屏幕”来绘制各种 2D 形状。 我已将其“AutoScroll”属性设置为 true,并且当您缩放屏幕时滚动条可以正常工作(即用户控件) 现在,当我选择任何形状(如矩形或圆形等)并将其移动以使其超出屏幕的可见部分时,我希望相应的滚动条自动滑动以保持该形状在屏幕的可见区域上。 我需要设置滚动条的任何其他属性吗??
【问题讨论】:
【参考方案1】:我认为不创建自己的方法是不可能实现的。
您可以通过以下方式设置滚动条位置:
this.VerticalScroll.Value = Y;
那么你必须通过以下方式找出你的Rectangle
的位置:
Rectangle.Location.Y;
所以这应该适用于您的垂直滚动条:
this.VerticalScroll.Value = Rectangle.Location.Y;
横向:
this.HorizontalScroll.Value = Rectangle.Location.X;
结合 MouseDown-Event 就可以了。
【讨论】:
感谢您的提示。我没有给出 Rectangle 的值,而是将水平和垂直滚动的值增加了一个固定的量,直到鼠标被移动。它奏效了。【参考方案2】:看看here at the MSDN documention 究竟是什么AutoScroll
属性是什么和做什么。它只会使容器具有大于其可见边界的虚拟大小。它实际上并没有为你做滚动。
如果您希望控件在用户拖动形状时随用户“移动”,您必须自己捕捉该动作并手动滚动控件。我建议从 MouseDown 和 MouseMove 事件开始。您需要一些逻辑来确定何时需要滚动以及实际滚动多少。
【讨论】:
以上是关于滚动条的自动滑动的主要内容,如果未能解决你的问题,请参考以下文章