Foxtable(狐表)用户栏目专家坐堂 → [分享]目录树重新生成后,保持之前节点展开状态的代码


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

主题:[分享]目录树重新生成后,保持之前节点展开状态的代码

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
[分享]目录树重新生成后,保持之前节点展开状态的代码  发帖心情 Post By:2012/11/22 11:35:00 [只看该作者]

我之前做了很多目录树,发现只要删除,增加节点,或者重新生成节点后就会发生目录树恢复原始的收起状况,很不方便。闲来写了一段代码,感觉和之前天老师的目录树只展开一个节点代码有相似之处,特拿来分享,不知道有没人发过!

Dim sz As New List(Of Integer)
Dim trv As WinForm.TreeView = e.form.controls(TreeView1)
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.IsExpanded = True
        SZ.Add(nd.Index)
    End If
Next
   
'''变更目录树后,重生成的代码


For Each nd1 As WinForm.TreeNode In trv.AllNodes
   If sz.Contains(nd1.Index)
         nd1.Expand
   End If
Next

上面代码就能保证目录树节点变更后,整体展开状态不变,便于查看目录树变更状况。
不知道这代码还有没有更好的方法!


顺便再转享下天老师的目录树只展开一个节点的代码
If e.Node.Level = 0 Then
    For Each pg As WinForm.TreeNode In e.Sender.Nodes
        If pg.Name <> e.Node.Name Then
            pg.CollapseAll()
        End If
    Next
Else
    For Each pg As WinForm.TreeNode In e.Node.ParentNode.Nodes
        If pg.Name <> e.Node.Name Then
            pg.CollapseAll()
        End If
    Next  
End If

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


加好友 发短信
等级:小狐 帖子:383 积分:2439 威望:0 精华:0 注册:2011/12/3 22:19:00
  发帖心情 Post By:2012/11/22 11:42:00 [只看该作者]

谢谢,顶你

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/22 15:09:00 [只看该作者]

学习收藏


 回到顶部
帅哥哟,离线,有人找我吗?
小猪鑫鑫
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/11/22 19:17:00 [只看该作者]

收藏学习

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


加好友 发短信
等级:一尾狐 帖子:408 积分:2921 威望:0 精华:4 注册:2010/8/26 20:57:00
  发帖心情 Post By:2012/11/22 22:07:00 [只看该作者]

天老师?
天老师是哪个?  怎么木有听说过

 回到顶部