如何隐藏虚拟TreeView中的展开/折叠按钮?

我使用VirtualStringTree(VST)显示分组数据,标题细节。 我需要一个选项来允许用户展开,折叠标题以查看详细信息,并且在某些情况下,我需要将数据显示为静态视图,但无法展开,折叠,只能看到完整的展开树:

这里是用户可以展开,使用子节点折叠节点的示例:

在这里输入图像描述

这里是一个例子,当我想阻止用户展开/折叠节点,并总是看到所有扩展(或显示的任何内容):

在这里输入图像描述

在这个测试中,我通过'允许展开/折叠/复选框来控制。

我通过添加以下内容来防止扩展,

Allowed:=CheckBox1.Checked;

进入OnCollapsing / OnExpanding:

procedure TMainForm.VSTCollapsing(Sender: TBaseVirtualTree;
  Node: PVirtualNode; var Allowed: Boolean);
begin
  Allowed:=CheckBox1.Checked;
end;

procedure TMainForm.VSTExpanding(Sender: TBaseVirtualTree;
  Node: PVirtualNode; var Allowed: Boolean);
begin
  Allowed:=CheckBox1.Checked;
end;

我也显示/隐藏TreeLines基于复选框

procedure TMainForm.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
    VST.TreeOptions.PaintOptions:=VST.TreeOptions.PaintOptions + [toShowTreeLines]
  else
    VST.TreeOptions.PaintOptions:=VST.TreeOptions.PaintOptions - [toShowTreeLines];
end;

当我想阻止用户展开,折叠节点时,如何隐藏这个小加号。 有什么建议么?


编辑:

为了消除与表单图标的混淆,这是Virtual Treeivew 5演示库的演示项目。 IDE中的表单具有Delphi XE7图标,运行该项目时出现此旧图标。 不知道为什么。 只是想确定我使用的是XE7而不是任何较老的Delphi版本,其中相同的解决方案可能不适用。

在IDE中,如果图标为XE7图标:


您正在寻找的附加选项是toShowButtons 。 在您使用toShowTreeLines的相同位置使用toShowTreeLines

TVTPaintOption声明中的VirtualTrees.pas中记录了该选项:

    toShowButtons,             // Display collapse/expand buttons left to a node.
链接地址: http://www.djcxy.com/p/5975.html

上一篇: How to hide expand/collapse button in Virtual Treeview?

下一篇: Can't get parent