2012-07-24 37 views

回答

1

不知道你正在得到什么错误,或者你的TreeView1节点结构是什么(不管你有没有多个根节点,我假设你忘记了TreeNodeCollection索引是从零开始的,应该使用TreeView1.Nodes(0)

从上面的链接:

要指定TreeNode对象到特定位置,或者从TreeNodeCollection检索它们,你可以用一个具体的指标值引用集合对象的TreeNodeCollection的索引值是一个零基指数。

下面的代码对我的作品有一个节点结构:

enter image description here

Dim k As Integer 
If Integer.TryParse(TextBox1.Text, k) Then 'Checking if conversion is valid before trying to use 
    For i = k + 1 To 4 
     TreeView1.Nodes(0).Nodes("Node" & i).Remove() 'Using Nodes(0) for root node. 
    Next 
End If 

作为一个警告,我不知道你要完成什么,但这些子例程我希望能让你接近。第一个是通过创建节点结构然后清除TreeView并添加新节点来重新创建原始Treeview。 第二个子例程使用TextBox中的数字,检查创建的节点是否会重复,如果不是,则会将其添加到TreeView中。第三个子例程是根据基于TextBox输入的数量来查找添加新节点的最后一个现有节点。

Private Sub ResetNodes() 
    Dim root As TreeNode 

    root = New TreeNode("Node0") 
    root.Nodes.Add("Node1") 
    root.Nodes.Add("Node2") 
    root.Nodes.Add("Node3") 
    root.Nodes.Add("Node4") 

    TreeView1.Nodes.Clear() 
    TreeView1.Nodes.Add(root) 
End Sub 

Private Sub AddNodes() 
    Dim k As Integer 
    Dim duplicate As Boolean 
    If Integer.TryParse(TextBox2.Text, k) Then 
     For i = 1 To k 
      For Each node As TreeNode In TreeView1.Nodes(0).Nodes 
       If node.Text = "Node" & i Then 
        duplicate = True 
        Exit For 
       End If 
       duplicate = False 
      Next 
      If Not duplicate Then TreeView1.Nodes(0).Nodes.Add("Node" & i) 
     Next 
    End If 
End Sub 

Private Sub AddToExistingNodes() 
    Dim k As Integer 
    Dim lowIndex As Integer 
    Dim highIndex As Integer 

    lowIndex = TreeView1.Nodes(0).Nodes.Count + 1 

    If Integer.TryParse(TextBox2.Text, k) Then 
     highIndex = lowIndex + k 
     For i = lowIndex To highIndex 
      TreeView1.Nodes(0).Nodes.Add("Node" & i) 
     Next 
    End If 
End Sub 
+0

非常感谢你的帮助。 – mrn 2012-07-24 14:19:03

+0

@mrn我的回答有问题吗? – 2012-07-24 15:00:52

+0

遇到以下查询,(a)如何在运行时重置为原始结构? (我可以为此操作添加一个新按钮)和(b)是否可以生成与在TextBox1中输入的数字相等的子节点总数? – mrn 2012-07-24 15:04:18

0

如果你喜欢,U可以搜索并删除

Private Sub Delete_Sub_TreeNod() 

For Each tn As TreeNode In TreeView1.Nodes 

      For Each tn2 As TreeNode In tn.Nodes 
       If tn2.Text = "Some Value" Then 
        tn2.Remove() 
       End If 

      Next 
     Next 
    End Sub