如何在 TVertScrollBox 中设置在 TListView 中选择的项目的 ViewportPostion

How to set the ViewportPostion of the item selected in TListView inside the TVertScrollBox

我有一个 TListView,其中包含 TVertScrollBox 中的一百个项目。我想在 TListView 中设置所选项目的 ViewportPosition(通过代码完成)。 TListView 不可滚动,只有 TVertScrollBox 可滚动。

对于 TListView 中的 100 个项目,我不希望我的用户滚动整个项目列表,而是在使用代码进行选择时,它会自动将 ViewportPostion 设置为所选项目。

我试图从以下代码中找出如何将 0 更改为所选项目的可变编号。

VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, 0);

如有任何帮助或线索,我将不胜感激。

假设 TListView 在 TVertScrollBox 内并且 TListView.Height 足够大以至于根本没有滚动条,然后设置视口以便 TListView 项目编号 N 位于顶部(你得到 N通过搜索数据),然后滚动视图中的项目 N,您可以:

VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X,
                                          ListView1.ItemAppearance.ItemHeight * N);