
vb中树状图带有复选框,我想实现点击一个节点,其他节点的复选框被选中的对勾取消,
2个回答
展开全部
实现单选功能吗?
'返回选定的Key值
Sub sub_CheckOne(ByVal Node As MSComctlLib.Node)
If Node.Checked = True Then
Dim iA
For iA = 1 To Obj_TreeView.Nodes.Count
If Obj_TreeView.Nodes(iA).Checked Then
If Obj_TreeView.Nodes(iA).Key <>node.key Then
Obj_TreeView.Nodes(iA).Checked = False
end if
End If
Next
End If
end sub
'返回选定的Key值
Sub sub_CheckOne(ByVal Node As MSComctlLib.Node)
If Node.Checked = True Then
Dim iA
For iA = 1 To Obj_TreeView.Nodes.Count
If Obj_TreeView.Nodes(iA).Checked Then
If Obj_TreeView.Nodes(iA).Key <>node.key Then
Obj_TreeView.Nodes(iA).Checked = False
end if
End If
Next
End If
end sub
更多追问追答
追问
但是我有1、2、3级目录,想点击1节目录时,2、3级都被选中,点击2级时,1级不选中,但是3级被全选中,点3级的某一个节点,只有该节点复选框被选中,
追答
Sub sub_CheckMe(ByVal Node As MSComctlLib.Node)
If Not Node.Checked = True Then Exit Sub
Dim iA
For iA = 1 To Obj_TreeView.Nodes.Count
If fun_Isson(Obj_TreeView, Obj_TreeView.Nodes(iA), Node.Key) Then
oNode.Checked = True
Else
If Obj_TreeView.Nodes(iA).Checked Then
If Obj_TreeView.Nodes(iA).Key Node.Key Then
Obj_TreeView.Nodes(iA).Checked = False
End If
End If
End If
Next
End Sub
'*********************************************************************************************
'名称 fun_Isson
'作者 Morn Woo 2005-3-16
'功能 检查节点oNode是否键值为skey节点的子节点
'参数 tr 树对象,onode 待检查的节点对象,skey 父节点的键值
'*********************************************************************************************
Function fun_Isson(ByVal tr As TreeView, ByVal oNode As Node, sKey As String) As Boolean
fun_Isson = False
While (oNode.Index 0) And (oNode.Key sKey)
Set oNode = oNode.Parent
Wend
If oNode.Key = sKey Then
fun_Isson = True
End If
End Function
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
删除回复代码
有眼不识金镶玉
有眼不识金镶玉
追问
你别这么生气吗,我没有那个意思,你的代码我也试了,是可以的,因为我不知道我接下来一个个的问题,会不会让你没有耐心的回答,干嘛这么生气,这么大的脾气呀,莫生气呀~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询