请问怎样判断该节点是父节点还是子节点呢?谢谢!!!!

解决方案 »

  1.   

    你的提问有问题,父节点和子节点是相对而言的。
    你是不是要判断一个节点是否是叶节点?
    可以用 Children 属性,这个属性返回包含在 Node 对象中的各子 Node 对象的个数。
      

  2.   

    if TreeView1.SelectedItem.Children>0 then msgbox "父节点"
      

  3.   

    在窗体中粘入下面代码(画个TreeView,命名为tvw)
    Private Sub Form_Load()
        With tvw
            .Nodes.Add , , "a", "a"
            .Nodes.Add "a", tvwChild, "ab", "ab"
            .Nodes.Add "a", tvwChild, "ac", "ac"
            .Nodes.Add "a", tvwChild, "ad", "ad"
        
        
        End With
    End SubPrivate Sub tvw_NodeClick(ByVal Node As MSComctlLib.Node)
        If Node.Children = 0 Then
            MsgBox "子结点"
        Else
            MsgBox "父结点"
        End If
    End Sub
      

  4.   

    那请帮我看看这段插节点的程序:
    Private Sub Command1_Click()
      If Txt(0).Text <> "" And Txt(1).Text <> "" Then     '不允许建立零字节的父节点和子节点
        CunZai = False
        J = TreeView1.Nodes.Count
        For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在
           if TreeView1.SelectedItem.Children>0 then 
              If Txt(0).Text = TreeView1.Nodes(I).Text Then
              CunZai = True
           End If
        Next I
        If CunZai = True Then '若存在, 则在父节点下建立子节点
          Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J, Txt(1).Text, 3)
        Else '若不存在,则建立父节点和子节点
          Set nodx = TreeView1.Nodes.Add(, , Txt(0).Text, Txt(0).Text, 1)
          Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J, Txt(1).Text, 3)
        End If
        TreeView1.Refresh
      ElseIf Txt(0).Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!"
       '系统提示
      ElseIf Txt(1).Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!"
      End If
    End Sub
    问题就是当我创建一个父节点a和子节点b,正常。但接着我想在a下插入子节点c就会出错了。
    但是如果在FormLoad时已经创建a和b的话,再插入c就会正常,不知道为什么,请指教。
      

  5.   

    就是不能在最后一个父节点插入子节点,在其他父节点都是正常的。如图:
    a
    |--b
    |--c
    d
    |--e这时候在d下面插入节点的话就会出现异常了。
      

  6.   

    太混乱了
    你 在root下建立node 的 key 是 Txt(0).Text, text也是 txt(0).text 
       在其他情况,建立node(你认为他是sub node) 的key  是 “child”& nodes.count,
                  text 是txt(0).text
    而你认为,当原来的子结点变成了父结点的时候,你遍历到了,却用txt(0).text做key ,而其实
    他原来的key是"child" & nodes.count
      

  7.   

    Private Sub Command1_Click()
      If Txt(0).Text = "" or Txt(1).Text <> "" Then
        msgbox "请输入父结点 和 子结点"
        exit sub
      endif    TreeView1.Nodes.Count
        For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在
              If Txt(0).Text = TreeView1.Nodes(I).Text Then exit for
        Next I
        If i>treeview1.notes.cunt Then '存在, 则在父节点下建立子节点
          Set nodx = TreeView1.Nodes.Add(treeview1.nodes(i).key, tvwChild, _
               "child" & treeview1.nodes.count, Txt(1).Text, 3)
        Else                           '若不存在,则建立父节点和子节点
          Set nodx = TreeView1.Nodes.Add(, ,"child" & treeview1.nodes.count , _
               Txt(0).Text, 1)
          Set nodx = TreeView1.Nodes.Add("child" & treeview1.nodes.count - 1, _
               tvwChild, "child" & treeview1.nodes.count, Txt(1).Text, 3)
        TreeView1.Refresh
    End Sub这里成立的条件是node的text没有重复的
      

  8.   

    If Txt(0).Text = "" or Txt(1).Text <> "" Then 
    -->
    If Txt(0).Text = "" or Txt(1).Text = "" Then TreeView1.Nodes.Count
    -->
    'TreeView1.Nodes.CountIf i>treeview1.notes.cunt Then '存在, 则在父节点下建立子节点
    -->
    If i<=treeview1.notes.count Then '存在, 则在父节点下建立子节点
    TreeView1.Refresh
    -->
    end if
    TreeView1.Refresh