1

我正在寻找一种通过代码导航到树视图中的项目的方法。该对象应移动到可见区域。我在 TTreeView 或 TTreeViewItem 中都找不到方法。

以下方法并非在所有情况下都有效,因为项目位置并不总是更新:

procedure TfmxMain.MakeItemVisible(Item: TTreeViewItem);
begin
  trvMyTreeView.ViewportPosition :=
    TPointF.Create(min(Item.Position.X - trvSlideGroups.ClientWidth / 2, 0),
     min(Item.Position.Y - trvSlideGroups.ClientHeight / 2, 0));
end;
4

1 回答 1

1

经过对 FMX.TreeView 的深入分析,我找到了一个简单的解决方案:

procedure TfmxMain.MakeItemVisible(Item: TTreeViewImageItem);
begin
  Item.Deselect;
  Item.Select;
end;

这个简单的操作调用内部方法TCustomTreeView.UpdateSelection,将选定的项目移动到可见区域。

于 2019-06-24T14:51:14.920 回答