以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [分享]目录树重新生成后,保持之前节点展开状态的代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26021) |
-- 作者:gaoyong30000 -- 发布时间: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 -- 发布时间:2012/11/22 11:42:00 -- 谢谢,顶你 |
-- 作者:hanxuntx -- 发布时间:2012/11/22 15:09:00 -- 学习收藏 |
-- 作者:小猪鑫鑫 -- 发布时间:2012/11/22 19:17:00 -- 收藏学习 |
-- 作者:xmj09663 -- 发布时间:2012/11/22 22:07:00 -- 天老师? 天老师是哪个? 怎么木有听说过
|