以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 树节点如何插入一个已有的节点 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=102326) |
-- 作者:zhsenchzhi -- 发布时间:2017/6/17 14:10:00 -- 树节点如何插入一个已有的节点 一个 TreeView, 假设节点如下 A 下面有B, B 下面有 C, c下面有 d,e,f 等等 也就是说 B 是A的子节点, C 是B的子节点,以此类推 这个 TreeView 形成以后, a,b,c,d 等 也都已经形成 了 TreeNode 现在 我想 快速的 把 C 从 B下面 挪到 A下面,但是 def 等仍然是 C 下级节点 这样需要两步: 1 先将 C 脱离 原来的 父节点 B, 这个好做, 用 Nodes.remove 可以轻松移走 2 再将 c 放在 A 下面, 这个比较麻烦, 因为 Nodes 下面的 add 和 inset 后面的参数 都是 字符串,而不是一个 treenode, 而我这个 c 已经形成了treenode,如果用 add方法,势必c 下面的很多子节点也要重新生成,影响效率,也容易出错 请问 第二部有没有什么好方法,将一个已有的节点 放在另一个节点下面?
|
-- 作者:有点蓝 -- 发布时间:2017/6/17 15:16:00 -- 参考:http://www.foxtable.com/webhelp/scr/1988.htm |
-- 作者:zhsenchzhi -- 发布时间:2017/6/17 15:26:00 -- 这个页面里面的 add 和 insert 的参数 也都是 字符串呀 另外上移,下移,左移, 右移 也不适合,因为不知道会移到什么地方
|
-- 作者:有点蓝 -- 发布时间:2017/6/17 15:33:00 -- 1、 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") Dim a As WinForm.TreeNode = trv.Nodes(0) Dim b As WinForm.TreeNode = a.Nodes(0) Dim c As WinForm.TreeNode = b.Nodes(0) b.Nodes.Remove(c) a.basenode.Nodes.Add(c.basenode) 2、 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") Dim a As WinForm.TreeNode = trv.Nodes(0) Dim b As WinForm.TreeNode = a.Nodes(0) Dim c As WinForm.TreeNode = b.Nodes(0) b.Nodes.Remove(c) Dim c1 As WinForm.TreeNode = a.Nodes.Add(c.Name,c.Text) For Each c2 As WinForm.TreeNode In c.Nodes c1.Nodes.Add(c1.Name,c2.Text) Next |
-- 作者:zhsenchzhi -- 发布时间:2017/6/17 15:55:00 -- 请问 为什么 a.basenode.Nodes.Add(c.basenode) 这个使用方法 在 帮助文档里面找不到呢?
|
-- 作者:有点蓝 -- 发布时间:2017/6/17 16:08:00 -- .net的用法。 |