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

问题描述

我有一个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);