没有添加 children 时,有没有办法显示 TTreeNode 的 > 符号?

Is there a way to show the > sign of a TTreeNode when no children have been added yet?

我在 TTreeView object 中显示项目。当一个项目有 children 时,控件在图标旁边绘制一个 >(如果展开,则绘制一个向下箭头)。

我想知道我是否可以告诉 Item 以某种方式绘制 >,即使还没有添加 children。

在我的软件中有某些条件可以向用户显示 children,而无需实际添加 children(然后在选择项目时完成)

使用 c++ Builder 2009 VCL,但此问题对 Delphi 也应该有效。

在 VCL 中,TTreeNode 有一个 HasChildren 属性:

Indicates whether a node has any children.

HasChildren is true if the node has subnodes, or false if the node has no subnodes. If ShowButtons of the tree view is true, and HasChildren is true, a plus (+) button will appear to the left of the node when it is collapsed, and a minus (-) button will appear when the node is expanded.

Note: If a node has no children, setting HasChildren to true will show a (+) plus button, but will not add any child nodes and the node cannot be expanded.

因此,您可以在为其创建实际子节点之前将节点的 HasChildren 设置为 true。稍后,一旦您确定该节点是否有任何实际的子节点,如果没有子节点存在,您可以将 HasChildren 重置为 false。

尽管上面的文档有建议,但尝试展开没有子节点但 HasChildren 设置为 true 的节点至少会触发 TTreeView.OnExpanding 事件。这是填充实际子节点和更新 HasChildren.

的好地方