以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 目录树问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171612) |
-- 作者:fangdejin -- 发布时间:2021/9/4 14:03:00 -- 目录树问题? 让非选中的节点关闭 代码是狐狸大人的: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Level = e.Node.Level AndAlso nd.FullPath <> e.Node.FullPath then trv.Nodes(i).Collapse() End If Next e.Node.Expand() 其中的 i 不知道该循环哪个? allnodes 提示index 超出 nodes 直接死循环 崩溃 请示蓝版解答
|
-- 作者:有点蓝 -- 发布时间:2021/9/4 14:05:00 -- Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Level = e.Node.Level AndAlso nd.FullPath <> e.Node.FullPath then nd.Collapse() End If Next e.Node.Expand() |
-- 作者:有点蓝 -- 发布时间:2021/9/4 14:09:00 -- 这样效率更高,至于为什么,自己思考一下 If e.Node.parentnode IsNot Nothing Then For Each nd As WinForm.TreeNode In e.Node.parentnode.nodes nd.Collapse() Next Else For Each nd As WinForm.TreeNode In e.sender.nodes nd.Collapse() Next End If e.Node.Expand() |
-- 作者:fangdejin -- 发布时间:2021/9/4 14:15:00 -- OK,多谢篮版本. |
-- 作者:fangdejin -- 发布时间:2021/9/4 14:16:00 -- 分类遍历 更准确了. 第二个 好像也会崩溃. 放的位置是 AfterExpandNode
[此贴子已经被作者于2021/9/4 14:28:10编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/9/4 15:00:00 -- 去掉e.Node.Expand() |