on error resume next 
if err。

解决方案 »

  1.   


    '本实例要在窗体上添加一个TreeView1,两个CommandPrivate Sub Command1_Click()
        Call addnodex("key1", "key1")
        Call Expanded
    End SubPrivate Sub Command2_Click()
        Call addnodex("key2", "key2")
        Call Expanded
    End SubPrivate Sub Form_Load()
        TreeView1.Nodes.Add , , "R", "root"
        TreeView1.Nodes.Add "R", tvwChild, "key1", "key1"
        Call Expanded
    End SubSub addnodex(NodeKey As String, NodeText As String)
        Dim blnExist As Boolean
        For i = 1 To TreeView1.Nodes.Count
            If TreeView1.Nodes(i).Key = NodeKey Then
                blnExist = True
                Exit For
            End If
        Next
        If blnExist Then    '存在
            TreeView1.Nodes.Add TreeView1.Nodes(i).Key, tvwChild, "", NodeText
        Else                '不存在
            TreeView1.Nodes.Add "R", tvwChild, NodeKey, NodeText
        End If
    End SubSub Expanded()
        For i = 1 To TreeView1.Nodes.Count
            TreeView1.Nodes(i).Expanded = True
        Next
    End Sub
      

  2.   

    再问一下,如何才能判断某个节点下指定的子节点是否存在?
    即:允许不同的父节点有同名的字节点。而上面的程序好像在整个treeview中都不能有相同的字节点。
      

  3.   

    TreeView1.Nodes(i).Key  不能重复TreeView1.Nodes(i).Text 可以重复
    程序主要通过KEY判断是否存在节点
      

  4.   

    Private Sub Command2_Click()
        Call addnodex("key" & Rnd(Val(Now())), "aaa")
        Call addnodex("key" & Rnd(Val(Now())), "aaa")
        Call addnodex("key" & Rnd(Val(Now())), "aaa")
        Call Expanded
    End Sub
      

  5.   

    Private Sub Command2_Click()
        Call addnodex("key" & Rnd(Val(Now())), "aaa")
        Call addnodex("key" & Rnd(Val(Now())), "aaa")
        Call addnodex("key" & Rnd(Val(Now())), "aaa")
        Call Expanded
    End Sub
      

  6.   

    其实我现在要做这样的工作:
    从数据表里读出所有记录(每条记录对应一条路径信息,不同记录之间可能有部分相同的信息,例如第一记录是:1\2\3\4,第二条记录是:1\2\9,……),然后根据这些信息生成treeview中的各个节点
    请问高手有什么最佳实现方法没有?我现在想到的方法是先用split函数分解路径字符串,然后从函数返回的数组中取出各级目录,再逐个生成节点。但是这样要不断的检查treeview中是否已经生成了相应的节点,觉得实现起来不容易。望高手指点,谢谢。