我现在碰到一个问题:
(1)怎么样在treeview的每个nodes.text前,加一个可以打勾的方框?
(2)如何实现父节点打勾,全部子节点都打勾?
(3)当全部子节点都没有打勾时,父节点的勾自动去掉?
(4)当部分子节点没有打勾时,而部分节点打勾时,父节点及其父节点的父节点的勾变成灰色?如何取得相应的状态呢?
---就像金山毒霸杀毒软件,它的界面上选择那个盘符(C,D,E,F等)那样,每个盘符下又有子目录,每个子目录下可能还有孙目录,当要杀C盘病毒时,在C盘符打勾,这样就全部选择了C及其下面的目录,但是只要有一个子目录不选(还是有其他目录选择要杀毒),C盘前的那个打勾就变成灰色,但还是有那个打勾在,只有全部子目录都不选择杀毒,c盘符前才没有那个打勾。
怎么实现?????
请教请教!
(1)怎么样在treeview的每个nodes.text前,加一个可以打勾的方框?
(2)如何实现父节点打勾,全部子节点都打勾?
(3)当全部子节点都没有打勾时,父节点的勾自动去掉?
(4)当部分子节点没有打勾时,而部分节点打勾时,父节点及其父节点的父节点的勾变成灰色?如何取得相应的状态呢?
---就像金山毒霸杀毒软件,它的界面上选择那个盘符(C,D,E,F等)那样,每个盘符下又有子目录,每个子目录下可能还有孙目录,当要杀C盘病毒时,在C盘符打勾,这样就全部选择了C及其下面的目录,但是只要有一个子目录不选(还是有其他目录选择要杀毒),C盘前的那个打勾就变成灰色,但还是有那个打勾在,只有全部子目录都不选择杀毒,c盘符前才没有那个打勾。
怎么实现?????
请教请教!
解决方案 »
- 高手帮个忙 VB中datareport如何打印备注内容
- 怎样取&Hefac里的ef和ac
- vb窗体最大了 怎么才能在大点 height 才11520
- 找高手处理vb+access打卡时间重复
- VB6 如何在文件复制完毕后提示成功呢???
- 如何在VB中嵌入其他资源?如何在AUTHORWARE6.0中嵌入VB的程序??
- 关于文本框的进一步探讨(望高手指点)
- 请教:如何将这个XML文件导入SQL Server数据库中
- 程序出问题了!
- 能不能用ActiveX文档做个网页 然后放在网上 把用户填写的信息保存在服务器端的数据库里?
- 窗体属性BorderStyle = 0,在窗体的右下脚,放置一个image控件,如何使用鼠标当拖动image控件时,动态改变窗体的大小?
- 返回子窗口名称
'
'Author:lihonggen0
'Date:2003-1-20
'功能:选择Treeview节点下所有节点
'----------------------------------------------------------------------------
Private Sub Form_Load()
TreeView1.Checkboxes = True
TreeView1.Nodes.Add , "R", "root", "root"
TreeView1.Nodes.Add "root", tvwChild, "key1", "aa"
TreeView1.Nodes.Add "key1", tvwChild, "key11", "ccc"
TreeView1.Nodes.Add "root", tvwChild, "key2", "bb"
TreeView1.Nodes.Add "key2", tvwChild, "key21", "ddd"
TreeView1.Nodes.Add "key2", tvwChild, "key211", "eee"
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True
Next
End Sub
Private Sub CheckChild(ByVal Node As MSComctlLib.Node, ByVal bCheck As Boolean, Optional ByVal bNext As Boolean = True, Optional ByVal bChild As Boolean = True)
If Not Node Is Nothing Then
Node.Checked = bCheck
If Node.Children And bChild Then
Call CheckChild(Node.Child, bCheck, True, True) '对子节点
End If
If bNext Then
Call CheckChild(Node.Next, bCheck, True, bChild) '对同一层节点
End If
End If
End Sub
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Call CheckChild(Node, Node.Checked, False, True) '处理子节点
End Sub
不信,你可以试试!
有两个第三方控件?
for each nodx in tvw.nodes
if nodx.parent.key=selectnode.key then
nodx.check=nodex.parent.check
end if
next
大概就是这样,代码不一定对,思路大概旧这样,具体的自己摸索以下咯:)