【发布时间】:2019-09-23 08:40:18
【问题描述】:
我正在使用带有 Virtual TreeView 的 Delphi XE3。
我已启用 toAutoTristateTracking 选项。
当我尝试手动更改节点的检查状态时,受影响节点的检查状态也会更改。
但是,例如,当我以编程方式做同样的事情时,
PNode^.CheckState := csMixedNormal;
或
PNode^.CheckState := csCheckedNormal;
只有 PNode 检查状态会改变。受影响的节点不会改变它们的状态。为什么?
【问题讨论】:
-
CheckState是节点字段还是属性?如果您直接更改节点字段的数据,则不会正确通知 Virtual TreeView 所做的更改。这就是为什么各种属性都使用Setter方法,以便在更改某些数据后执行更新组件可视部分的必要方法。