Foxtable(狐表)用户栏目专家坐堂 → [求助] 目录树展开与关闭


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

主题:[求助] 目录树展开与关闭

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


加好友 发短信
等级:幼狐 帖子:177 积分:1571 威望:0 精华:0 注册:2008/9/1 22:25:00
[求助] 目录树展开与关闭  发帖心情 Post By:2011/11/14 9:42:00 [只看该作者]

当单击节点时,选定的节点展开,同层的其它节点关闭。。

 

Dim nd As WinForm.TreeNode = trv.SelectedNode
Dim id As Integer = nd.index
If e.Node.Level = 0 Then
    Dim cnt As Integer  = trv.Nodes.Count - 1
    For i As Integer = cnt To 0 Step -1
        If trv.Nodes.Count >= 0 Then
            If i=id
                trv.Nodes(i).Expand()
            Else
                trv.Nodes(i).Collapse()
            End If
        End If
    Next

ElseIf e.Node.Level = 1 Then
    Dim cnt As Integer  = trv.Nodes.Count - 1
    For i As Integer = cnt To 0 Step -1
        If trv.Nodes.Count >= 0 Then
            If i=id
                trv.Nodes(i).Nodes(i).Expand()
            Else
                trv.Nodes(i).Nodes(i).Collapse()
            End If
        End If
    Next

End If

 

这个只能做到根节点,往下的就出错了。。。


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/14 9:55:00 [只看该作者]

用这个比较好:
 
http://www.foxtable.com/help/topics/2302.htm


大概就是这样:
 
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()


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


加好友 发短信
等级:幼狐 帖子:177 积分:1571 威望:0 精华:0 注册:2008/9/1 22:25:00
  发帖心情 Post By:2011/11/14 11:06:00 [只看该作者]

图片点击可在新窗口打开查看。。。谢狐爸


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


加好友 发短信
等级:幼狐 帖子:177 积分:1571 威望:0 精华:0 注册:2008/9/1 22:25:00
  发帖心情 Post By:2011/11/14 16:44:00 [只看该作者]

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If e.Node.Level = 0 Then
    Dim cnt As Integer  = trv.Nodes.Count - 1
    For i As Integer = cnt To 0 Step -1
        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).CollapseAll()
            Else
                e.Node.Expand()
            End If
        Next
    Next
ElseIf e.Node.Level = 1 Then
    Dim cnt As Integer  = trv.SelectedNode.ParentNode.Nodes.Count - 1
    For i As Integer = cnt To 0 Step -1
        For Each nd As WinForm.TreeNode In trv.AllNodes
            If nd.Level = e.Node.Level AndAlso nd.FullPath <> e.Node.FullPath Then
                trv.Nodes(Value(0)).Nodes(i).CollapseAll()
            Else
                e.Node.Expand()
            End If
        Next
    Next
ElseIf e.Node.Level = 2 Then
    Dim cnt As Integer  = trv.SelectedNode.ParentNode.Nodes.Count - 1
    For i As Integer = cnt To 0 Step -1
        For Each nd As WinForm.TreeNode In trv.AllNodes
            If nd.Level = e.Node.Level AndAlso nd.FullPath <> e.Node.FullPath Then
                trv.Nodes(Value(0)).Nodes(Value(1)).Nodes(i).CollapseAll()
            Else
                e.Node.Expand()
            End If
        Next
    Next
ElseIf e.Node.Level = 3 Then
    Dim cnt As Integer  = trv.SelectedNode.ParentNode.Nodes.Count - 1
    For i As Integer = cnt To 0 Step -1
        For Each nd As WinForm.TreeNode In trv.AllNodes
            If nd.Level = e.Node.Level AndAlso nd.FullPath <> e.Node.FullPath Then
                trv.Nodes(Value(0)).Nodes(Value(1)).Nodes(Value(2)).Nodes(i).CollapseAll()
            Else
                e.Node.Expand()
            End If
        Next
    Next
End If

 

可不可以简化代码   不管目录树的层数。。。?


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/14 16:48:00 [只看该作者]

先告诉我,你的设计任务是什么?

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


加好友 发短信
等级:幼狐 帖子:177 积分:1571 威望:0 精华:0 注册:2008/9/1 22:25:00
  发帖心情 Post By:2011/11/14 16:52:00 [只看该作者]

仓库目录树。。有的商品规格分类层比较多,有的层比较少,我想单击是展开,双击就选定。。。

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/14 16:54:00 [只看该作者]

单击展开,这样不就行了吗:

 

e.Node.Expand()


 回到顶部