如何隐藏TVirtualStringTree节点?

Mar*_*kus 5 delphi virtualtreeview tvirtualstringtree

如果我没弄错的话,TVirtualStringTree树视图中不可能有不可见的节点,因为没有启用,可见或其他属性.我这是对的吗?

如果是,我怎么设法有一个不可见的节点?

我树的结构:

  • 一个节点
  • 另一个节点
    • 子节点1
    • 子节点2
    • ...
    • 子节点15
    • 子节点16(不可见!)
  • 又一个节点
    • 子节点1 从另一节点
    • 子节点2 从另一节点

当我在整个树上执行FirstNode/GetNextNode循环时,我可以找到子节点16,让我打印出第一列的文本.我也可以检查节点,看看他有一个以前的兄弟,但没有下一个兄弟,例如节点高度为18.

那我是怎么做到的?

ain*_*ain 22

如果我没弄错的话,TVirtualStringTree树视图中不可能有不可见的节点,因为没有启用,可见或其他属性.我这是对的吗?

你错了,可以同时拥有不可见和禁用的节点.要切换节点的可见状态使用

vtree.IsVisible[Node] := boolean;
Run Code Online (Sandbox Code Playgroud)

启用/禁用节点使用

vtree.IsDisabled[Node] := boolean;
Run Code Online (Sandbox Code Playgroud)

您也可以初始化树的节点,以禁用状态OnInitNode的事件与添加ivsDisabledInitialStates参数.