Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树节点单选,有实用意义【代码在8楼,10楼】


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

主题:[求助]目录树节点单选,有实用意义【代码在8楼,10楼】

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
[求助]目录树节点单选,有实用意义【代码在8楼,10楼】  发帖心情 Post By:2012/12/7 21:27:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:66666666666666666666666.jpg
图片点击可在新窗口打开查看

如图:

要求:【3】【4】复选框选中后,则【2】选中,然后【3】【4】去掉选中

也就是 父节点选中,则子节点全部不选中

         子节点选中,则父节点选中,然后子节点不选中

【注意】如果3.4.5.6选中,那么【1】选中,然后3.4.5.6去掉选中状态

 似乎要写个递归?我写了一下老是死循环。高手请出手 


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.foxdb

[此贴子已经被作者于2012-12-8 15:58:08编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7236 积分:40591 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/12/7 21:44:00 [只看该作者]

我又现成的通用代码:

 

Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
For Each nd As WinForm.TreeNode In e.node.Nodes '同步子节点选中状态
    nd.Checked = e.Node.Checked
    For Each nd1 As WinForm.TreeNode In nd.Nodes '同步子节点选中状态
        nd1.Checked =  nd.Checked
        For Each nd2 As WinForm.TreeNode In nd1.Nodes '同步子节点选中状态
            nd2.Checked =  nd1.Checked
        Next
    Next
Next
If e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
    e.node.ParentNode.Checked = False
    If e.node.ParentNode.ParentNode IsNot Nothing Then '去掉父节点选中状态
        e.node.ParentNode.ParentNode.Checked = False
        If e.node.ParentNode.ParentNode.ParentNode IsNot Nothing Then '去掉父节点选中状态
            e.node.ParentNode.ParentNode.ParentNode.Checked = False
        End If
    End If
End If

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8(1).foxdb


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/12/7 21:58:00 [只看该作者]

谢谢程版,好像没有达到要求

 


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7236 积分:40591 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/12/7 22:56:00 [只看该作者]

没注意您的要求,您的要求本身就会导致死循环!


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/8 9:59:00 [只看该作者]

 之前写过一个简单的。但和你的相反。你可以参考下。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树节点与子节点同步变化.table





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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/12/8 13:01:00 [只看该作者]

你写出来肯定是精华图片点击可在新窗口打开查看

 

另外 程版 这个需要还是有的。也是合理的


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/8 15:03:00 [只看该作者]

 大概是这样子,看是否合适。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.foxdb


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/12/8 15:40:00 [只看该作者]

谢谢 正是我要的。


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/12/8 15:56:00 [只看该作者]

林总 我补了一点点代码 这样完美了

Dim node As WinForm.TreeNode = e.Node
If node.Checked Then
    Do While node.Level > 0
        node.ParentNode.Checked = False
        node = node.ParentNode
    Loop
End If
Functions.Execute("checkLoop", e.Node)


 回到顶部