代码之家  ›  专栏  ›  技术社区  ›  IceCold

当DragMode为dmAutomatic时,如何使TScollBox自动滚动?

  •  1
  • IceCold  · 技术社区  · 7 年前

    我将所有按钮的DragMode设置为dmAutomatic,这样我就可以移动按钮(拖放)。

    但我有一个问题:因为GridPanel比ScrollBox大,所以ScrollBox具有可见的垂直滚动条。我想让滚动条自动向下滚动,这样我就可以将底部从可见(顶部)行放到底部不可访问的行中(这是所有Windows程序的典型行为,对吧?)

    我有一个简单的代码可以实现这一点:在MouseMove中,我检测鼠标何时接近滚动框的底部,并调整ScrollBox.vertsollba.Position向下滚动。这仅在我未处于“拖放”模式(如果我未拖动按钮)时有效。

    如果我开始拖放操作 NO mouse events are fired .

    即使我处于“拖放”模式,我如何接收MouseMove事件?

    1 回复  |  直到 6 年前
        1
  •  4
  •   nil    7 年前

    TDragObject 管理所述拖放操作。这 OnDragOver OnDragDrop 在当前鼠标位置下,可由潜在目标控件处理。

    这将允许您处理 OnMouseMove 以类似的方式捕获当前拖动时的鼠标移动。

    推荐文章