VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1094|回复: 7

求解:用循环向Treeview中添加nodes问题

[复制链接]

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-2-5 10:30:01 | 显示全部楼层 |阅读模式
有如下几个节点变量:
变量    节点名称          路径
item(1)   Root              Root
item(2)   1st_1             Root\1st_1
item(3)   1st_2             Root\1st_2
item(4)   1st_2             Root\1st_2\1st_2
(上面的变量,包括完整路径已知,可直接引用)


形成的树形状为:
Root
  |---1st_1
  |     
  |___1st_2  
        |___1st_2

要求循环遍历4个变量,然后将各变量根据其路径属性加入到树中
现遇到的问题主要是
1。1st_2有重复,虽然不在同一路径,所以key不能用节点名称,在循环中如何设置key值
2。用Set mnode = TreeView1.Nodes.Add()方法增加时,如何指定其父节点?

若有详细的Treeview的使用方法的源码提供参考也不胜感激~~~

回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-24 16:15:01 | 显示全部楼层
Set mnode = TreeView1.Nodes.Add(父节点,,..)
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-25 02:00:01 | 显示全部楼层
关键是怎么用循环来做?用TreeView1.nodes.add(...)里面的key值能不能不设,让他自动找?但是我试了,好像不设key值得话,后面的子节点不知道怎么指定父节点
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-4-1 08:00:01 | 显示全部楼层
Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "1st_1")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "1st_2")
   Set nodX = TreeView1.Nodes.Add("C2", tvwChild, "C3", "1st_2")
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-4-4 11:45:01 | 显示全部楼层
谢谢您的回复,但是这种方法是在确定了有几个(4个)节点的情况下,一句句的输入,设置key值后的方法,现在问题是如果不确定呢?
我想用For each ..循环,然后根据路径信息,添加到对应的节点后面?怎么做?
回复

使用道具 举报

1

主题

21

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-4-15 11:30:02 | 显示全部楼层
Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "1st_1")
   Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "1st_2")
   Set nodX = TreeView1.Nodes.Add("C2", tvwChild, "C3", "1st_2")

我在以上代码的基础上说,首先你的node是从哪里来呢?如果从数据的话很容易就配上唯一的key了。

找到key的方法完全依赖你的逻辑
你可以根据路径取第一个字符
R
R1
R2
R22
如果当前key不唯一可以R22_1这样
完全依赖你的逻辑了,因为通过key可以直接找到一个node,依据逻辑这个是你判断node很好的工具
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-5-1 15:30:01 | 显示全部楼层
也就是说key值必须手工设,不能像数据库里面的那样自动增长是吧,然后增加新的子节点的时候,也是需要指定的是父节点的key值,而不是他的名称是吧~~~
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-6-3 12:00:01 | 显示全部楼层
已自己搞定~~!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表