如何让下面的TreeView控制代码支持无级父节点反向选择?

xiaolinvfp 2008-11-06 11:08:31
下面是我写的一函数,谁能告诉我如何做到支持无限级父节点的反向选择.
其实我想到一个方法,就是用循环,但不知道treeNode.Parent.Parent(Parent根据级别数一直增加)一直循环怎样来弄?

''' <summary>
''' 选中子节点的同时选中其所属的父节点(支持5级父节点)
''' </summary>
''' <param name="treeNode">节点</param>
''' <param name="nodeChecked">Checked状态</param>
''' <remarks></remarks>
Public Function CheckParentNodes(ByVal treeNode As TreeNode, ByVal nodeChecked As Boolean) As Boolean
If nodeChecked = True Then
If treeNode.Parent.Level >= 0 Then treeNode.Parent.Checked = nodeChecked
If treeNode.Parent.Level >= 1 Then treeNode.Parent.Parent.Checked = nodeChecked
If treeNode.Parent.Level >= 2 Then treeNode.Parent.Parent.Parent.Checked = nodeChecked
If treeNode.Parent.Level >= 3 Then treeNode.Parent.Parent.Parent.Parent.Checked = nodeChecked
If treeNode.Parent.Level >= 4 Then treeNode.Parent.Parent.Parent.Parent.Parent.Checked = nodeChecked
ElseIf nodeChecked = False Then
If treeNode.Parent.Level >= 0 Then
If CheckNodes(treeNode.Parent) = False Then treeNode.Parent.Checked = False
End If
If treeNode.Parent.Level >= 1 Then
If CheckNodes(treeNode.Parent.Parent) = False Then treeNode.Parent.Parent.Checked = False
End If
If treeNode.Parent.Level >= 2 Then
If CheckNodes(treeNode.Parent.Parent.Parent) = False Then treeNode.Parent.Parent.Parent.Checked = False
End If
If treeNode.Parent.Level >= 3 Then
If CheckNodes(treeNode.Parent.Parent.Parent.Parent) = False Then treeNode.Parent.Parent.Parent.Parent.Checked = False
End If
If treeNode.Parent.Level >= 4 Then
If CheckNodes(treeNode.Parent.Parent.Parent.Parent.Parent) = False Then treeNode.Parent.Parent.Parent.Parent.Parent.Checked = False
End If
End If
End Function
...全文
72 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧