搜索
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 请教TreeView遍历选中节点及其子节点
标题:
请教TreeView遍历选中节点及其子节点
只看楼主
hyf8285
等 级:
新手上路
帖 子:109
专家分:0
注 册:2013-1-21
第
11
楼
得分:0
回复 10楼 csyx
好的,谢谢!我学习下!
2022-07-13 17:49
csyx
等 级:
版主
威 望:
29
帖 子:484
专家分:1827
注 册:2018-3-13
第
12
楼
得分:0
还有些需要写代码限制的拖放操作,例如:父节点拖放到自己的子节点上
2022-07-13 18:00
hyf8285
等 级:
新手上路
帖 子:109
专家分:0
注 册:2013-1-21
第
13
楼
得分:0
回复 12楼 csyx
是的,正在学习!那这样我原来程序里的大部分代码都要修改了,你是用递归来加载数据的吧?那我原来表里的nLayer字段(层级)还需要了吗?
2022-07-13 18:22
csyx
等 级:
版主
威 望:
29
帖 子:484
专家分:1827
注 册:2018-3-13
第
14
楼
得分:0
如果 nLayer 没有其他用途是可以不要,cfullpath 好像也用不到
改成递归加载方式,是为了保障先加载父节点,再由父节点去加载自己的子节点,避免出现父节点还没加载就先加载子节点的情况
2022-07-13 18:44
hyf8285
等 级:
新手上路
帖 子:109
专家分:0
注 册:2013-1-21
第
15
楼
得分:0
回复 14楼 csyx
nLayer字段就是为了动态加载数据而设的,按照“父对象+nLayer”升序排列,一层一层的加载,也是为了避免父对象还未加载而出现错误,所以,我本来的想法是,拖动节点后,先算出新节点的层数,然后加载,这样也不会错。问题就是不会算拖动后节点的层数,现在按照你的方法,nLayer可以不要了,cFullPath是在我的程序里用到的。
非常感谢您的帮助!我还在学习领悟你的方法!
[此贴子已经被作者于2022-7-13 18:57编辑过]
2022-07-13 18:55
csyx
等 级:
版主
威 望:
29
帖 子:484
专家分:1827
注 册:2018-3-13
第
16
楼
得分:0
先说要做的限制也很容易判断, OLEDragDrop 开始部分改一下
c0 = This.Nodes(srcKey)
c1 = This.Nodes(tagKey)
if c0 $ c1 then 不允许 else 允许
如同儿子可以过继给大伯叔叔做儿子,但绝对不允许老爸变成儿子的儿子
2022-07-13 18:55
hyf8285
等 级:
新手上路
帖 子:109
专家分:0
注 册:2013-1-21
第
17
楼
得分:0
限制条件我会写的,包括不能移到子节点的子节点...
2022-07-13 18:59
csyx
等 级:
版主
威 望:
29
帖 子:484
专家分:1827
注 册:2018-3-13
第
18
楼
得分:0
算层数应该简单吧,Occurs('\', oNode.FullPath) 就是这个节点的层数(如果节点文本中不会出现 \ 符号的话)
2022-07-13 19:00
hyf8285
等 级:
新手上路
帖 子:109
专家分:0
注 册:2013-1-21
第
19
楼
得分:0
算层数简单,是这个路径不好算,你拖动后,路径就变了,包括子节点的路径,因为你还没有加载,所以FullPath得到的是原来的路径,所以我一开始的问题就是问你们如何算出拖动后节点的路径
2022-07-13 19:02
csyx
等 级:
版主
威 望:
29
帖 子:484
专家分:1827
注 册:2018-3-13
第
20
楼
得分:0
也是,一个节点好算,关键是可能拖一大串葡萄过来
2022-07-13 19:04
38
2/4页
1
2
3
4
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-509547-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.052119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved