以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  目录树勾选  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170494)

--  作者:shyilin8
--  发布时间:2021/7/28 14:06:00
--  目录树勾选
AfterCheckNode




For
 Each nd As WinForm.TreeNode In e.node.AllNodes  \'同步子节点选中状态
    If nd.FullPath.StartsWith(e.node.FullPath) Then
        
nd.Checked = e.node.Checked
    End If

Next
If
 e.node.Checked = False Then \'如果本次操作为清除节点选中状态
    Dim pd As WinForm.TreeNode = e.node.ParentNode \'
获取父节点
    Do While pd IsNot Nothing
        pd.Checked = False \'
清除父节点选中状态
        pd  = pd.ParentNode \'
继续获取上一层级的父节点
    
Loop
End
 If

这个是帮助里面的案例,但是多次勾选节点偶尔子节点就勾选失效

--  作者:有点蓝
--  发布时间:2021/7/28 14:17:00
--  
注意点击勾选的时候,不要点的太快,变成了双击。这个控件的双击勾选是有问题的
--  作者:shyilin8
--  发布时间:2021/7/28 14:25:00
--  
有什么解决方案吗?还是只能这样?
--  作者:有点蓝
--  发布时间:2021/7/28 14:33:00
--  
如果是双击引起的,没有办法解决,这个是目录树控件底层的问题,是.net本身的bug。

如果不是双击引起的上传实例测试一下