Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 945|回复: 3

请给完成树结构代码

[复制链接]
发表于 2022-8-8 22:58 | 显示全部楼层 |阅读模式
本帖最后由 向前650809 于 2022-8-8 23:27 编辑

各位网友好,现有省份选择窗体,树状结构。现想选中父节点,子节点自动选中,取消任一子节点选中,父节点也被取消选中。请给写一下代码。我只写了部分,其中取消子节点选中,父节点也被取消,代码不正确。另外把获取选中省份代码给改进一下

谢谢

省份.jpg

省份树窗体二.rar

10.9 KB, 下载次数: 4

发表于 2022-8-9 00:36 | 显示全部楼层
代码很简单自己研究下了
  1. Private Sub TreeView2_NodeCheck(ByVal Node As MSComctlLib.Node)
  2. Dim objNode As MSComctlLib.Node, flag As Boolean
  3. If Not Node.Child Is Nothing Then '父节点
  4. If Node.Checked = True Then flag = True Else flag = False

  5. Set objNode = Node.Child
  6. Do
  7.     objNode.Checked = flag
  8.     Set objNode = objNode.Next
  9.     Loop Until objNode Is Nothing
  10. End If

  11. If Not Node.Parent Is Nothing Then '子节点
  12.     Set objNode = Node.Parent
  13.     objNode.Checked = Node.Checked
  14. End If
  15. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2022-8-9 10:48 | 显示全部楼层
本帖最后由 向前650809 于 2022-8-9 11:24 编辑

就上面代码请请教
Dim objNode As MSComctlLib.Node,何意,MSComctlLib.Node何涵义
flag = True Else flag = False,这是指谁的选择性真假
把子节点时代码中objNode.Checked = Node.Checked改成了If Node.Checked = False Then objNode.Checked = False

Private Sub TreeView2_NodeCheck(ByVal Node As MSComctlLib.Node)这是一个什么事件,某一选框被击时事件吗(选中或取消选中)给改写一下获取选中省份的代码
另请加QQ好友,以便请教
谢谢
回复

使用道具 举报

 楼主| 发表于 2022-8-18 14:58 | 显示全部楼层
就上面代码请请教
Dim objNode As MSComctlLib.Node,何意,MSComctlLib.Node何涵义
flag = True Else flag = False,这是指谁的选择性真假
把子节点时代码中objNode.Checked = Node.Checked改成了If Node.Checked = False Then objNode.Checked = False

Private Sub TreeView2_NodeCheck(ByVal Node As MSComctlLib.Node)这是一个什么事件,某一选框被击时事件吗(选中或取消选中)给改写一下获取选中省份的代码
另请加QQ好友,以便请教
谢谢
  管理
回复 编辑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 10:35 , Processed in 0.546890 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表