首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2012-03-02 
TreeView1问题请教高手!在线等!请帮忙程序改错!我想选中树的父结点然后他对应的子结点都被选中!程序如下:P

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

热点排行