就像QQ中那样,展开一个,其他都关闭?
谢谢。

解决方案 »

  1.   

    With TreeView1
            For i = 1 To .Nodes.Count
                If .Nodes.Item(i).Selected = False Then
                     .Nodes.Item(i).Expanded = False
                End If
            Next
       End With
      

  2.   

    其实就是定义一个全局变量记住你当前点击的Node对象。当点击其它的Node对象时,这个全局变量的Node对象就收缩。
      

  3.   

    To crycoming(瞎编) 
    不行哦,父节点和子节点之间还有冲突呢
      

  4.   

    那你就用一个全局变量保存当前的Node的Key
    With TreeView1
            For i = 1 To .Nodes.Count
                If .Nodes.Item(i).Key <> g_Key Then '判断是否当前Node
                     .Nodes.Item(i).Expanded = False
                End If
            Next
       End With
      

  5.   

    明白你的意思了,为了防止点击子节点时防止其父节点收缩,
    再加个判断节点是否当前节点的父节点或子节点,如果是就不收缩一般是在key或tag里添加标明父子关系的字符串
      if  instr(1,ANode.key,BNode.key)>0 then
          msgbox "A是B的字节点"
      end if
    With TreeView1
            For i = 1 To .Nodes.Count
                If .Nodes.Item(i).selected =False or IsParentOrChild() Then '判断是否当前Node或父子节点
                     .Nodes.Item(i).Expanded = False
                End If
            Next
       End With
      

  6.   

    To crycoming(瞎编) 
    IsParentOrChild()是你自己定义的一个函数?
      

  7.   

    IsParentOrChild()是自己定义的一个函数
    判断方法是这样的
    一般是在key或tag里添加标明父子关系的字符串
      if  instr(1,ANode.key,BNode.key)>0 then
          msgbox "A是B的字节点"
      end if
      

  8.   

    To:w3k(网络3K)
      能不能说说具体的代码?我没写出来。
      

  9.   

    Private Sub TreeView1_DblClick()
        Static TreeIndex As Integer
        If TreeIndex <> 0 And TreeIndex <> TreeView1.SelectedItem.index Then
                    TreeView1.Nodes(TreeIndex).Expanded = False '收起节点
        End If
        TreeIndex = TreeView1.SelectedItem.index
    End Sub