读书人

TreeView1有关问题!请帮忙程序改错

发布时间: 2012-03-02 14:40:28 作者: rapoo

TreeView1问题请教高手!在线等!请帮忙程序改错!
我想选中树的父结点然后他对应的子结点都被选中!程序如下:
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim strKey As String
Dim i As Long
strKey = Node.Key

If Node.Checked = True Then

For i = 1 To TreeView1.Nodes.Count

If TreeView1.Nodes(i).Parent.Key <> strKey Then

ElseIf TreeView1.Nodes(i).Parent.Key = strKey Then
TreeView1.Nodes(i).Checked = True
End If
Next
Else
For i = 1 To TreeView1.Nodes.Count

If TreeView1.Nodes(i).Parent.Key <> strKey Then

ElseIf TreeView1.Nodes(i).Parent.Key = strKey Then
TreeView1.Nodes(i).Checked = False
End If
Next
End If
End Sub

下面这一句报错:(对象变量或with块变量未设置)
If TreeView1.Nodes(i).Parent.Key <> strKey Then
请问怎么做啊?那位高手有什么高见的请帮忙!谢谢!小弟是分少了点!

[解决办法]
加判断

If Not TreeView1.Nodes(i).Parent Is Nothing Then
If TreeView1.Nodes(i).Parent.Key <> strKey Then

ElseIf TreeView1.Nodes(i).Parent.Key = strKey Then
TreeView1.Nodes(i).Checked = True
End If
endif

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070130

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim strKey As String
Dim i As Long
strKey = Node.Key

For i = 1 To TreeView1.Nodes.Count

If Not TreeView1.Nodes(i).Parent Is Nothing Then

TreeView1.Nodes(i).Checked =iif(TreeView1.Nodes(i).Parent.Key = strKey,Node.Checked,TreeView1.Nodes(i).Checked)
End If
Next

End Sub
------解决方案--------------------


Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)

Dim nodX As Node

For Each nodX In TreeView1.Nodes
If nodX.Parent Is Node Then
nodX.Checked = Node.Checked
End If
Next

End Sub

读书人网 >VB

热点推荐