Delphi TreeView 现场保存与恢复

J5I)[7WCHP~4}UO943RP(V1

 

OK关于TreeView,展开状态保存的程序设计思路。

想要的:

状态1 A节点被选中,该节点展开子项

操作 刷新

状态2 B节点被选中,该节点状态是否展开子项

做法:

TreeView刷新前,将需要在状态2 中选中的节点信息存入公共变量。

刷新后,遍历表找到 节点 信息=公共变量 的。

Node.Selected:=True;

Node.Expanded:=true;

总结:

在解决问题前,未测试解决方案的关键路径。导致做大量无用功。整体设计思路不够全面。

关键路径:

Node.Expand(true),在该Node有父节点的时候,且状态未作展开设置时,TreeView不呈现Node的展开状态。

Node.Selected:=true;的伴随效果是展开该Node的所有父节点。

 

附:Delphi关于TreeView的操作

http://www.99inf.net/SoftwareDev/Delphi/35627.htm

原文地址:https://www.cnblogs.com/xyicheng/p/1594994.html