Office中国论坛/Access中国论坛

标题: 如何获取TreeView的根键值? [打印本页]

作者: zww3008    时间: 2013-4-26 17:33
标题: 如何获取TreeView的根键值?
所选TreeView项的键值:
本项:TreeView0.SelectedItem.Key
上级:TreeView0.SelectedItem.Parent.Key

对于无限级(不固定级)的TreeView,选定任意键时,如何得知其祖宗(根键)的键值?

示例请见:
http://www.office-cn.net/forum.php?mod=viewthread&tid=116711&extra=page%3D1%26filter%3Dtypeid%26typeid%3D9%26typeid%3D9

http://www.office-cn.net/forum.php?mod=attachment&aid=NTE1MzF8YzY5MWUxMjB8MTM2Njk2Nzk4NnwxODMxMTZ8MTE2NzEx
作者: tmtony    时间: 2013-4-26 21:06
if  Node.Parent Is Nothing 就是根结点
作者: zww3008    时间: 2013-4-26 22:12
谢谢管理员。我是根据一个表建立树,表中有ID、上级ID等字段。
应用中点击树的任何节点,要求获得该节点的祖宗节点所对应的ID,请问如何获得?
作者: t小宝    时间: 2013-4-26 22:30
note.root.text
或者
Split(Node.FullPath, "\")(0)

作者: zww3008    时间: 2013-4-26 23:05
t小宝 发表于 2013-4-26 22:30
note.root.text
或者
Split(Node.FullPath, "\")(0)

谢谢。终于可以了。

Node.Root  根键标签
Node.Root.Key  根键值(ID)
作者: zww3008    时间: 2013-4-27 13:12
刚才再确认了一下,root方法不行。
当有多个总目录时,我们认为是有不同个“根”的,但是对于Tree来说,似乎只有唯一的一个根,也就是我们所认为的根非系统中的根。看来只能使用FullPath方法,从获得的名称来间接获取总目录的ID,我原来也是使用这种方法,觉得是笨方法。
[attach]51703[/attach]
作者: zww3008    时间: 2013-4-27 20:00
本帖最后由 zww3008 于 2013-4-27 20:01 编辑

这样可以了:
   
Dim Pnode As Node
    Set Pnode = TreeView0.SelectedItem
    Do Until Pnode.Parent Is Nothing
        Set Pnode = Pnode.Parent
    Loop
    Me.根ID = Int(Mid(Pnode.Key, 3))
作者: yachtz    时间: 2013-4-28 10:49
本帖最后由 yachtz 于 2013-4-28 10:52 编辑

TreeView0.Nodes(1)就是根节点




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3