VB.NET 如何将子节点添加到树视图中的特定节点

Posted

技术标签:

【中文标题】VB.NET 如何将子节点添加到树视图中的特定节点【英文标题】:VB.NET How to add a child node to a specific node in treeview 【发布时间】:2012-04-15 08:55:45 【问题描述】:

如何将子节点添加到树视图中的特定节点?假设我已经在树视图中有“Item1”,如何将“SubItem1”添加到“Item1”作为子节点?

我知道它可能真的很简单,但我尝试了很多东西,我就是无法让它工作。

【问题讨论】:

【参考方案1】:

将子节点添加到父节点(未选中)

首先使用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

【讨论】:

感谢您的快速回复,但这似乎不起作用。 我提供了一个更完整的示例。请让我知道这对你有没有用。如果没有,我们将从那里找出问题所在。 非常感谢所有这些示例,但再次添加了“祖父”。我想要做的是将“父亲”添加到“祖父”而不选择它。我已经知道如何同时添加所有三个。抱歉听起来像个菜鸟。再次感谢。 没问题,我明白你在说什么。让我更新我的帖子以更清晰。【参考方案2】:

*假设树视图为空:

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

rootNode.Nodes.Add("SubNode")

【讨论】:

【参考方案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

【讨论】:

【参考方案4】:

当我来到这里时,我正在寻找同样的东西,但到目前为止我无法找到我需要的东西。

所以我到了这个页面: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.

【讨论】:

以上是关于VB.NET 如何将子节点添加到树视图中的特定节点的主要内容,如果未能解决你的问题,请参考以下文章

通过单击箭头在树 extjs 3 中加载节点

如何将子级和大子级json数据附加到树视图结构中

VB.NET中treeview的使用

将图像添加到树视图控件 xamarin 表单中

VB.net如何动态获取菜单栏中的菜单名并用树型表示

使用唯一指针将节点添加到树