以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教:在treeview 中打开一个节点,如何做到同时关闭其他节点?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=147936)

--  作者:jswjyjf
--  发布时间:2020/3/27 15:47:00
--  请教:在treeview 中打开一个节点,如何做到同时关闭其他节点?
请教:在treeview 中打开一个节点,如何做到同时关闭其他节点?
--  作者:有点蓝
--  发布时间:2020/3/27 15:58:00
--  
获取父节点:http://www.foxtable.com/webhelp/topics/1498.htm

到AfterExpandNode事件遍历当前节点的父节点的所有子节点,如果不是当前节点就收缩

--  作者:jswjyjf
--  发布时间:2020/3/27 16:02:00
--  
能帮我写下代码吗 
--  作者:有点蓝
--  发布时间:2020/3/27 16:18:00
--  
先自己写,哪里有问题再把代码发上来看看
--  作者:jswjyjf
--  发布时间:2020/3/28 10:48:00
--  
Dim tr As WinForm.TreeView
Dim pd As WinForm.TreeNode
tr = Forms("导航").Controls("TreeView1")
pd = tr.SelectedNode.ParentNode
For Each nd As WinForm.TreeNode In tr.AllNodes
    If nd.Text.IndexOf("pd") >= 0 Then
        nd.Collapse()
    End If
Next


测试下来 还是不行 麻烦帮我看一下

--  作者:有点蓝
--  发布时间:2020/3/28 11:00:00
--  
Dim pd As WinForm.TreeNode = e.node.ParentNode
if pd is nothing then 
For Each nd As WinForm.TreeNode In e.sender.nodes
    If nd.name <> e.node.name Then
        nd.CollapseAll()
    End If
Next
else
For Each nd As WinForm.TreeNode In pd.nodes
    If nd.name <> e.node.name Then
        nd.CollapseAll()
    End If
Next
end if

--  作者:jswjyjf
--  发布时间:2020/3/28 11:22:00
--  
可以了 非常感谢