经过试验,node的Sorted属性只对自己的子节点(已存在的和未来要添加的)起作用,对孙子节点不起作用。所以,如果你已经设置了一个节点的sorted属性为true,那你在它下面再加入节点,新节点就按字母序插入;如果你没设置它的sorted,新节点就按节点添加的时间先后顺序插入。当然,新增节点时,也可以具体指定在哪个个节点的前面或后面插入。

看上面的图,根节点的sorted为true,所以生成树之后再根节点之下再添任何节点都以字母序插入;而节点3未设置sorted,所以在它下面插入的节点都没有排序。我用的是:Microsoft Treeview Control, version 6.0 。
注意,这个实验结果和VB控件手册里的说明是不一致的。VB控件手册里说:将Sorted 属性设置为True 将只排序当前的Nodes 集合。当给TreeView 控件增加了新的Node 对象时,必须再次将Sorted 属性设置为True 以便排序新增加的Node 对象。我就因为轻信了这话,导致一个BUG,调了好久。
另外,如果要树排序,可在树初始化完毕后,再象下面代码一样排序:

本文探讨了微软TreeView控件的节点排序特性。Sorted属性仅影响直接子节点,而非孙子节点。若设置节点的Sorted属性为true,新添加的子节点会按字母顺序插入;反之,则按添加顺序插入。实验环境为Microsoft Treeview Control, version 6.0。注意,VB控件手册的说明可能误导开发者,需手动设置Sorted属性以排序新增节点。解决方法是在树初始化后遍历节点,设置Sorted属性进行排序。"
111842557,10295448,SpringBoot拦截器配置与实战,"['springboot拦截器', '权限验证']
2116





