VB.NET如何向TreeView中的特定节点添加子节点

6
如何在树状视图中添加子节点到特定节点?假设已经在树状视图中有了"Item1",那么如何将"SubItem1"作为它的子节点添加到"Item1"?
我知道这可能非常简单,但是我尝试了很多方法,但一直无法让它工作。
4个回答

11

添加子节点至父节点(未选定)

首先使用Find()获取对父节点的引用,然后使用与下面其他部分相同的技术进行添加。

Dim MyNode() As TreeNode 
MyNode = TreeView1.Nodes.Find("Item1", True)
MyNode(0).Nodes.Add("SubItem1")

通过编程添加节点

如果你想将子节点添加到特定的父节点,可以使用 parent.node.add() 方法将子节点添加到它们的父节点中。 您可以像这样创建任意数量的子节点。

例如,如果您想要以下情景:

祖父-> 父亲-> 儿子

那么你可以这样做:

dim GrandfatherNOde as treenode = tree.nodes.add("Grandfather")
dim fatherNode as treenode = GrandfatherNode.Nodes.add("Father")
dim sonNode as treenode = fatherNode.Nodes.add("Son")

更多阅读和示例

这个页面有一个很好的例子,你可以运行它来动态地向树中添加子节点。他们是通过按钮来实现的,像这样进行连接:

Private Sub AddChild_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddChild.Click
    TView.SelectedNode.Nodes.Add(Text1.Text)
End Sub

http://www.codeproject.com/Articles/11830/The-Basic-Operations-on-using-the-TreeView-Control

的基本操作介绍了如何使用树形控件。

谢谢您的快速回复,但这似乎没有起作用。 - NetInfo
我已经包含了一个更完整的例子。如果这个例子对你有用,请告诉我。如果不行,我们会从那里找出问题所在。 - msigman
非常感谢您提供的所有示例,但是“祖父”已经添加了。我想要做的是将“父亲”添加到“祖父”中而不进行选择。我已经知道如何同时添加所有三个。抱歉听起来像个新手。再次感谢。 - NetInfo
没问题,我理解你的意思。让我更新我的帖子,使其更加清晰明了。 - msigman

3
如果您确保将Name分配给TreeNode,那么您可以使用Find来查找并添加Child节点。
示例:
Public Class Form1
    Dim Nodes(5) As TreeNode


    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

        Nodes(0) = New TreeNode("Root")
        Nodes(0).Name = "Root"
        Nodes(1) = New TreeNode("Item1")
        Nodes(1).Name = "Item1"
        Nodes(2) = New TreeNode("Item2")
        Nodes(2).Name = "Item2"
        Nodes(3) = New TreeNode("Item3")
        Nodes(3).Name = "Item3"
        Nodes(4) = New TreeNode("Item4")
        Nodes(4).Name = "Item4"
        Nodes(0).Nodes.Add(Nodes(1))
        Nodes(0).Nodes.Add(Nodes(2))
        Nodes(0).Nodes.Add(Nodes(3))
        Nodes(0).Nodes.Add(Nodes(4))

    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        TreeView1.Nodes.Add(Nodes(0))
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim tmpNode() As TreeNode = TreeView1.Nodes.Find("Item1", True)
        'Assuming only one Match
        tmpNode(0).Nodes.Add("Child Of Item1")
    End Sub
End Class

2
我来到这里时也在寻找同样的东西,但到目前为止我还无法找到所需内容。
因此,我找到了这个页面:http://www.dotnetspider.com/forum/168335-How-add-node-treeview-VB.NET.aspx。非常酷且简单易懂。
原来我们只需要继续输入nodes.add("nodename")就可以不断添加子级。例如:Treeview1.Nodes.Add("Root_1").Nodes.Add("Child_Level_1").Nodes.Add("Child_Level_2")。
Treeview1.Nodes.Add("Root_1").Nodes.Add("Child_Level_1").Nodes.Add("Child_Level_2")

这将得到类似于以下内容:

http://img716.imageshack.us/img716/7254/semttulonzk.jpg

希望对您有所帮助 ;D。

1

*假设TreeView为空:

Dim rootNode = TreeView1.Nodes.Add("Root")

rootNode.Nodes.Add("SubNode")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接