以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何判断目录树是不是在展开状态?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56779)

--  作者:jswjyjf
--  发布时间:2014/9/12 10:10:00
--  如何判断目录树是不是在展开状态?
如何判断目录树是不是在展开状态?
--  作者:Bin
--  发布时间:2014/9/12 10:17:00
--  
无法判断,你想实现的需求是什么 也许可以折中实现
--  作者:jswjyjf
--  发布时间:2014/9/12 10:19:00
--  

 

譬如下面这个图

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140912101752.jpg
图片点击可在新窗口打开查看
  

 

现在是展开展开状态,再次点击功能导航 变成 收缩状态 代码怎么写


--  作者:jswjyjf
--  发布时间:2014/9/12 10:20:00
--  

也就是功能导航 是个开关

 


--  作者:Bin
--  发布时间:2014/9/12 10:21:00
--  

Click 事件

If e.Sender.SelectedNode.text="功能导航" Then

   e.Sender.CollapseAll

End If


--  作者:jswjyjf
--  发布时间:2014/9/12 10:25:00
--  

那么处于收缩状态 再次点击功能导航 要求展开 代码如何写


--  作者:Bin
--  发布时间:2014/9/12 10:28:00
--  
遍历节点,判断 IsExpanded 属性吧

具体看你要求是要所有节点都展开才算,还是第一层节点有展开就算

每个节点都有个 IsExpanded 属性用于判断是否展开节点

--  作者:jswjyjf
--  发布时间:2014/9/12 10:28:00
--  

明白

知道了 谢谢


--  作者:lsy
--  发布时间:2014/9/12 10:29:00
--  

通用代码,哪种目录树都适用:

 

NodeMouseDoubleClick

 

e.Sender.StopRedraw
For Each nd As WinForm.TreeNode In e.Sender.AllNodes
    If nd.Name <> e.Node.Name AndAlso e.Node.Nodes.Count > 0 Then
        nd.Collapse
    End If
    e.Node.EnsureVisible
    e.Sender.SelectedNode = e.Node
Next
e.Sender.ResumeRedraw


--  作者:逛逛
--  发布时间:2014/9/12 11:48:00
--  
以下是引用jswjyjf在2014-9-12 10:25:00的发言:

那么处于收缩状态 再次点击功能导航 要求展开 代码如何写

换成  ExpandAll