以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  收起和展开目录树节点  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65570)

--  作者:新航程小何
--  发布时间:2015/3/18 15:22:00
--  收起和展开目录树节点

各位老师,我想实现在点击一级目录的时候,只展开点击的目录的二级目录,同时关闭一级其他展开的二级目录,如截图中,

当我点击“北京市”的时候,打开北京市的二级,关闭福建等其他省份的二级目录;当我记福建省的时候,展开福建省的二级目录,关闭北京等其他的目录


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

--  作者:Bin
--  发布时间:2015/3/18 15:25:00
--  
BeforeExpandNode事件

e.Sender.CollapseAll

--  作者:有点甜
--  发布时间:2015/3/18 15:30:00
--  

 BeforeExpandNode事件,代码

 

systemready = False
Dim pnd As object
If e.Node.Level = 0 Then
    pnd = e.Sender
Else
    pnd = e.Node
End If
pnd.CollapseAll
e.Node.ExpandAll
Systemready = True


--  作者:新航程小何
--  发布时间:2015/3/18 15:50:00
--  单击展开

老师,能不能单击的时候执行?

还有一个问题,就是上述代码对于两级的使用,但对三级的时候也就直接打开了,能不能每次点击只展开下一级?


--  作者:Bin
--  发布时间:2015/3/18 15:51:00
--  
用2楼的
--  作者:有点甜
--  发布时间:2015/3/18 16:03:00
--  

那你就写到 AfterSelectNode 事件

 

systemready = False
Dim pnd As object
If e.Node.Level = 0 Then
    pnd = e.Sender
Else
    pnd = e.Node
End If
pnd.CollapseAll
e.Node.Expand
Systemready = True


--  作者:新航程小何
--  发布时间:2015/3/18 16:05:00
--  
老师,那种方法只能打开到二级,点击二级的时候后连二级都直接关了。最主要的是不能实现“单击”展开,不是“双击”
--  作者:新航程小何
--  发布时间:2015/3/18 16:08:00
--  
谢谢,老师这是我想要的效果,不过怎么在点击的时候有闪屏
--  作者:有点甜
--  发布时间:2015/3/18 16:11:00
--  

BeforeSelectNode 事件

 

systemready = False
e.Sender.StopRedraw
Dim pnd As object
If e.Node.Level = 0 Then
    pnd = e.Sender
Else
    pnd = e.Node
End If
pnd.CollapseAll
e.Node.Expand
e.Sender.ResumeRedraw
Systemready = True


--  作者:新航程小何
--  发布时间:2015/3/18 16:34:00
--  
还有点闪,但比前一次好多了