Foxtable(狐表)用户栏目专家坐堂 → [求助]关于TreeView的求助


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

主题:[求助]关于TreeView的求助

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/5 14:44:00 [显示全部帖子]

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")

Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")

Dim nd1 As WinForm.TreeNode = trv1.SelectedNode

Dim dr As DataRow

For Each cnd As WinForm.TreeNode In e.Node.AllNodes '取消子节点的选中标记,因为选中父节点,就不要选中子节点了
   
    cnd.Checked = e.node.Checked
   
Next

If nd1.Level = 0 Then
   
    dr = _dt事务经办人员指派.Find("分组 = '" & nd1.Name & "' And 事务 Is Null")
   
Else
   
    dr = _dt事务经办人员指派.Find("分组 = '" & nd1.ParentNode.Name & "' And 事务 = '" & nd1.Name & "'")
   
End If

If dr IsNot Nothing Then
   
    Dim nms As String
   
    For Each nd2 As WinForm.TreeNode In trv2.AllNodes
       
        If nd2.Checked AndAlso nd2.Level > 0 Then
           
            nms  = nms & "," &  nd2.Name
           
        End If
       
    Next
   
    If nms > "" Then
       
        dr("经办人员") = nms.Trim(",")
       
    Else
       
        dr("经办人员") = Nothing
       
    End If
   
   
End If

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/5 15:10:00 [显示全部帖子]

加上下面这段全选的代码

 

For Each nd As WinForm.TreeNode In e.node.AllNodes
    nd.Checked = e.Node.Checked
Next


If e.Node.Checked = False Then
    Dim pnd As WinForm.TreeNode = e.Node.ParentNode
    Do While pnd IsNot Nothing
        pnd.Checked = False
        pnd = pnd.ParentNode
    Loop
Else
    Dim pnd As WinForm.TreeNode = e.Node.ParentNode
    Dim flag As Boolean = True
    Do While pnd IsNot Nothing
        If flag = True
            For Each nd As WinForm.TreeNode In pnd.Nodes
                If nd.Checked = False Then
                    flag = False
                    Exit For
                End If
            Next
        End If
        pnd.Checked = flag
        pnd = pnd.ParentNode
    Loop
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/6 10:55:00 [显示全部帖子]

 afterLoad事件和左边的目录树的事件要改。

 

 上传实例。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/6 12:17:00 [显示全部帖子]

For Each nd As WinForm.TreeNode In trv2.AllNodes
    nd.Checked = nms.Contains(nd.Name)
Next

For Each nd As WinForm.TreeNode In trv2.Nodes
    Dim flag As Boolean = True
    For Each cnd As winform.treeNode In nd.Nodes
        If cnd.Checked = False Then
            flag = False
        End If
    Next
    nd = flag
Next

[此贴子已经被作者于2015/8/6 12:16:53编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/6 14:23:00 [显示全部帖子]

 

[此贴子已经被作者于2015/8/6 14:24:00编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/6 14:25:00 [显示全部帖子]

For Each nd As WinForm.TreeNode In trv2.AllNodes
    nd.Checked = nms.Contains(nd.Name)
Next
For Each nd As WinForm.TreeNode In trv2.Nodes
    Dim flag As Boolean = True
    Dim str As String
    For Each cnd As winform.treeNode In nd.Nodes
        If cnd.Checked = False Then
            flag = False
        End If
    Next
    nd.Checked = flag
    If flag = True Then
        nd.text = nd.name & "★"
    Else
        nd.text = nd.name
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/10 9:57:00 [显示全部帖子]

For Each nd As WinForm.TreeNode In trv2.AllNodes
    nd.Checked = nms.Contains(nd.Name)
Next
For Each nd As WinForm.TreeNode In trv2.Nodes
    For Each cnd As winform.treeNode In nd.Nodes
        If cnd.Checked  Then
            nd.text = nd.name & "★"
            Exit For
        End If
    Next
Next

 回到顶部