我在TTreeView
对象中显示项目。当某项目具有子项时,该控件会在图标旁边绘制一个>
(如果展开则为向下箭头)。
我想知道即使没有添加任何子项,我是否还能以某种方式告诉Item绘制>
。
在我的软件中,有某些情况可以向用户显示有子级,而无需实际添加子级(然后在选择项目时完成)
使用c ++ Builder 2009 VCL,但此Q对Delphi也应有效。
最佳答案
在VCL中,TTreeNode
具有HasChildren
属性:
指示节点是否有任何子代。
如果节点具有子节点,则HasChildren
为true;如果节点没有子节点,则。如果树视图的ShowButtons
为true,并且HasChildren
为true,则当该节点折叠时,该节点的左侧将显示一个加号(+);当该节点处于折叠状态时,将显示一个减号(-)。扩展。
注意:如果节点没有子节点,则将HasChildren
设置为true将显示一个(+)加号按钮,但不会添加任何子节点,并且无法扩展该节点。
因此,可以在为节点创建实际的子节点之前将其HasChildren
设置为true。然后,稍后,确定该节点是否具有任何实际的子节点后,如果不存在任何子节点,则可以将HasChildren
重置为false。
尽管上面的文档中有建议,但尝试扩展没有子节点但HasChildren
设置为true的节点至少会触发TTreeView.OnExpanding
事件。这是填充实际子节点并更新HasChildren
的好地方。
关于delphi - 当还没有添加任何子级时,有没有办法显示TTreeNode的>符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53217271/