我的问题与
中提出的问题有关TVirtualStringTree. How to check a node and its children with a single confirmation?
如果启用了传播选项并且用户检查了内部节点,则会首先为其子节点触发事件OnCheck
和OnChecking
。当OnCheck
的事件处理程序正在执行时,是否有任何方法可以识别用户检查的确切节点?我通过实验确定OnNodeClick
的处理程序仅在OnCheck
之后触发。
答案 0 :(得分:0)
内置任何东西,你需要自己动手。
单击节点的OnChecking
事件似乎是在复选框点击时执行的第一个事件。所以,创建一个变量,比如ClickedNode:PVirtualNode
(通常为零)。在OnChecking
事件中检查它是否为零,如果是,则将其值设置为事件的节点。要触发的最后一个事件是OnClick
事件,您将ClickedNode
重置为nil。在OnChecking
或OnChecked
事件中,您知道ClickedNode
触发了检查序列。