以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树的展开和折叠  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176557)

--  作者:Phoebe菲比
--  发布时间:2022/4/18 11:07:00
--  目录树的展开和折叠
我想表达:在窗口打开后,目录树能自动展开某个节点,目前只显示的根节点。
我的代码:窗口--->AfterLoad事件
Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
tv.GenerateTree("GB2013土建","级码","清单名称", ".")

tv.StopRedraw \'停止绘制目录树
For Each nd As WinForm.TreeNode In tv.AllNodes \'遍历所有节点
    If nd.Level = 3 Then \'如果是二级节点
        nd.Text = nd.DataRow("清单编码") & " " & nd.text
    End If
Next
tv.ResumeRedraw \'恢复绘制目录树

tv.Nodes(1).Expand()

对于node和treenode这块的代码,我看了帮助文档还是很模糊。以后是否能增加更多例子以供学习?
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220418110357.png
图片点击可在新窗口打开查看

--  作者:Phoebe菲比
--  发布时间:2022/4/18 11:31:00
--  
另外,我设置了折叠按钮,希望点击按钮后,可以直接折叠到第一层节点。
同样会弹出这个对话框。
这是我的代码:
e.Form.Controls("TreeView1").Nodes(1).Collapse()
--  作者:Phoebe菲比
--  发布时间:2022/4/18 11:45:00
--  
目前想到了一个比较曲折的办法,先整体关闭,再打开一层节点。
e.Form.Controls("TreeView1").Nodes(0).CollapseAll()
e.Form.Controls("TreeView1").Nodes(0).Expand()

是否有更简便的办法?

--  作者:有点蓝
--  发布时间:2022/4/18 12:07:00
--  
tv.Nodes(1)指第二个根节点,说明目录树只有一个根节点

如果展开过,只能是3楼的用法。