标题:advtree控件用法,求指教!
只看楼主
qq645485165
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:197
注 册:2013-3-16
结帖率:100%
已结贴  问题点数:20 回复次数:3 
advtree控件用法,求指教!

当窗体加载时如何将集团所在地区加入到advtree对应的的node中?
搜索更多相关主题的帖子: 如何 
2013-04-01 11:05
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:20 
很抱歉过了这么久才回复你,因为我机器上没有donetbar2,对donetbar2也不是很熟,就没有回复,今天实在是看这贴放这么久,就下了一个donetbar2,试了一下,其实用法跟vs自带的差不多,主要就是逻辑问题,技术不难,就看逻辑上要怎么放进去.相信到现在你已经把问题解决了,我还是把想法说一下,供后来人参考吧,其实我个人觉得我的逻辑也不是很好,临时想的吧,大家有更好的想法可以说出来.
第一张图:界面
第二张图:代码
第三张图:效果


2013-04-06 12:27
qq645485165
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:197
注 册:2013-3-16
得分:0 
先谢谢啊!
咱俩所用算法都差不多,但是你所用的哈希表有点看不懂,对哈希表还没接触,能就这个例子讲解一下吗?
2013-04-07 09:09
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
Hashtable就是一个集合,跟同为集合的ArrayList也差不多,跟数组也很像,就是用于存放数据的
集合与数组不同,就是定义的时候不需要指定长度,是可变的,而数组是定长不可变的
如 string[] arrStr = new string[3];数组需要创建时就指定长度,而且不能改变长度
集合如ArrayList list = new ArrayList(); 创建的时候是不用指定长度的,需要放数据的时候用Add方法添加数据,且可以放任何类型的数据
Hashtable身为集合,也同样如此,使用集合的目的就在于不用知道,也不用管有多少数据要放进去
Hashtable是一个以"键值对"为对应关系的集合,需要为每个数据指定一个Key,其实就是ID了,那么通过Key就可以直接取出对应的数据,而不用管这个数据放在集合的哪个位置,不像数组一样需要循环去取出来判断
使用Hashtable的目的就在于不想去循环,我只要通过Key就能直接取出数据,当然集合也是支持循环取数据的

就你的例子, 需要在不同的1级节点下面添加子节点
要添加子节点,就需要取出相应的1级节点,那就需要循环tree,但是每一个子节点都去从tree里面循环找到1级节点就很麻烦,所以我就循环一次1级节点,把他们都取出来放着,下次要有的时候就直接拿出来添加子节点就可以了
但是问题是我要拿哪一个1级节点出来,所以用Hashtable为每个1级节点都指定了一个Key,取1级节点的时候,我只要告诉Hashtable,Key是什么,那Hashtable就会把对应的1级节点取出来给我
那现在就是要找出子节点与Key的关系,方便我拿到一个子节点数据,就能知到Key,然后通过Key,就能直接取出相应的1级节点,把子节点数据添加进去
所以大致看了一下,就用了省份名作为Key,我从子节点数据中取出省份名,然后把省份名告诉Hashtable,Hashtable就通过省份名,把对应的1级节点取出来了
最后我判断一下取出来的节点是不是空,如果传了一个Hashtable中没有的key,那就取不到数据,返回的就是null,所以保险一点,判断一下
确定取到1级节点了,就把子节点Add进去就完了
2013-04-07 10:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402587-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.185885 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved