Foxtable(狐表)用户栏目专家坐堂 → 目录树问题?


  共有4126人关注过本帖树形打印复制链接

主题:目录树问题?

帅哥哟,离线,有人找我吗?
fangdejin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:411 积分:4309 威望:0 精华:0 注册:2018/7/18 21:08:00
目录树问题?  发帖心情 Post By: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     直接死循环 崩溃 

请示蓝版解答图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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()

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:411 积分:4309 威望:0 精华:0 注册:2018/7/18 21:08:00
  发帖心情 Post By:2021/9/4 14:15:00 [只看该作者]

OK,多谢篮版本.图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
fangdejin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:411 积分:4309 威望:0 精华:0 注册:2018/7/18 21:08:00
  发帖心情 Post By:2021/9/4 14:16:00 [只看该作者]

分类遍历 更准确了.
第二个 好像也会崩溃.  

放的位置是 AfterExpandNode
[此贴子已经被作者于2021/9/4 14:28:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/4 15:00:00 [只看该作者]

去掉e.Node.Expand()

 回到顶部