以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]展开指定目录树节点  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110447)

--  作者:天一生水
--  发布时间:2017/12/3 14:02:00
--  [求助]展开指定目录树节点

1、我有一个目录树,取自用户组|用户名(us.Group |us.Name);

另有有两个单选框,但第二段代码执行错误,请老师帮助看看是哪里问题,谢谢!CheckedChanged代码为:

 

For Each us As UserInfo In Users
    If e.Form.Controls("RadioButton1").Checked = True Then
        e.Form.Controls("TreeView1").ExpandAll()   \'展开全部节点
    ElseIf e.Form.Controls("RadioButton2").Checked = True Then
        e.Form.Controls("TreeView1").CollapseAll    \'先关闭节点
        Dim tv As System.Windows.Forms.TreeView  = e.Form.Controls("TreeView1").BaseControl
        Dim nd() As System.Windows.Forms.TreeNode = tv.Nodes.Find(us.Name,True)     \'如果找到当前用户名
        If nd.Length > 0 Then
            tv.SelectedNode = nd(0)     \'展开用户名所在的组
        End If
    End If
Next

 

-----------------------

2、老师,增加一个问题,多选目录树勾选反选代码,怎么写?

清除勾选代码:

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In tv.AllNodes
    nd.Checked = False
Next

全选代码:

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In tv.AllNodes
    nd.Checked = true

Next

反选代码:......

 


[此贴子已经被作者于2017/12/3 20:12:46编辑过]

--  作者:有点甜
--  发布时间:2017/12/3 23:41:00
--  

反选代码

 

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In tv.AllNodes
    nd.Checked = not nd.Checked

Next