【问题标题】:How Do I Provide Scroll Bars When A Line Is Drawn Past Form Boundaries?当线条越过表单边界时,如何提供滚动条?
【发布时间】:2014-02-13 20:08:58
【问题描述】:

我正在制作一个程序,其中表单本身是用户使用鼠标事件绘制线条的容器。如果/当用户绘制一条线(鼠标向下)并拖出表单的边界时,我希望表单向表单添加滚动条(垂直和水平)。类似于使用 MS Excel 并从单元格 A1 拖动到 A## 或任何方向。

用户绘制的每一行都是一个对象。绘制完每个对象后,我都有一个返回每个对象边界的函数:Return New Rectangle(Min(Pt1.X,Pt2.X), Min(Pt1.Y, Pt2.Y), Abs(Pt2.X-Pt1.X), Abs(Pt2.Y-Pt1.y))。此外,我将表单上的 AutoScroll 属性设置为 TRUE。该表单是一个 MDI Child,如果这与它有关的话。

线条完美地绘制在表单上,​​但我无法让表单添加上面提到的滚动条。我不知道我应该调查什么,调整事件大小?属性变化?非常感谢您的指导。

【问题讨论】:

  • 您必须提供帮助,它只会自动保持控件可见,而不是像素。您必须将表单的 AutoScroll 属性设置为 True 并将 AutoScrollMinSize 属性分配给足够大的值以保持行可见。
  • 谢谢汉斯!我相信你是对的。即使设置了自动滚动属性,表单也需要知道有一个新对象需要说明。我想我找到了另一个类似的帖子来回答我的问题。再次感谢!

标签: vb.net drawing scrollbar drag autoscroll


【解决方案1】:

我发现 AutoScroll 只允许用户滚动到位于其可见边界之外的任何控件。因此,用户添加的任何对象都需要事件来显示和调整滚动条的大小。还问了一个与此类似的问题,并给出了更详细的回答。请访问auto sliding of Scrollbars

【讨论】:

    猜你喜欢
    • 2019-12-13
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多