表单中有一个THorzScrollBox
,里面有一些TStyledControls
。每个StyledControl
都有一个Tag
来识别。使用TEdit
通知值,我可以通过ScrollBox
在Control
内找到特定的tag
。
如果我搜索的control
不在屏幕上,我想滚动ScrollBox
以显示它。
如何以编程方式执行此操作?
答案 0 :(得分:4)
我找到了一种方法来做到这一点。
我必须使用ScrollBy
。但细节是,如果我想将控件向右滚动,我必须使用负值。
例如:
sbItems.ScrollBy(-10, 0); // this will scroll to right
如果我使用正值,它将向左滚动。
sbItems.ScrollBy(10, 0); // this will scroll to left
关键是,如果您滚动一次,ViewportPosition
将会改变,下次执行ScrollBy
时,它将不会重置滚动位置,它将从您已滚动的点滚动