VB。 NET 在树视图中添加多个子节点
VB. NET Add multiple ChildNodes in a Treeview
我在数据库中有很多记录,我需要像这样动态填充我的树视图:下面只是我需要的示例:
TreeView1.Nodes(a).ChildNodes.Add(New TreeNode("ChildNode " & b))
TreeView1.Nodes(a).ChildNodes(b).ChildNodes.Add(New TreeNode("ChildNode 2 lvl " & b))
我正在从 MySQL Db 获取记录,我需要知道如何将多级 ChildNode 添加到循环中 For ... Next 等...
您有什么建议或想法吗???
如果你想使用不同级别的树节点,你可以使用查找功能
Dim TempNode As TreeNode = TreeView1.Nodes.Find("Node where I want to add SubNode", True).FirstOrDefault
TempNode.Nodes.Add("SubNode", "SubNode")
通过这种方式,您可以将子节点添加到您选择的任何节点。
.Find("key",True)
找到具有以下键的树节点,.FirstOrDefault
首先选择。最后,您只需将新的子节点添加到临时节点。
您认为您是从 MySql 动态获取它的。它可能会导致错误,例如“正在从错误的线程调用在此控件上执行的操作。使用 Contol.Invoke 或 Control.BeginInvoke 编组到正确的线程以执行此操作。”只需将 TempNode.Nodes.Add("SubNode", "SubNode")
更改为 TreeView1.Invoke(Sub() TempNode.Nodes.Add("SubNode", "SubNode"))
示例:
Dim comm As String = "SELECT * FROM YourTableName"
Dim SqlCmnd as SqlCommand = New SqlCommand(comm, YourMySqlConnection)
Dim READER As SqlDataReader
READER = SqlCmnd.ExecuteReader
While READER.Read
Dim NewNode As TreeNode = New TreeNode(READER.Item("origCategoryID"))
TreeView1.Nodes.Add(NewNode)
NewNode.Nodes.Add(READER.Item("categoryOrderID"))
End While
READER.Close()
示例 2:
While READER.Read
If TreeView1.Nodes.Find(READER.Item("OrigCatOrderID"), True).Length > 0 Then
Dim NewNode As TreeNode = TreeView1.Nodes.Find(READER.Item("OrigCatOrderID"), True).FirstOrDefault
NewNode.Nodes.Add(READER.Item("CatOrderID"), READER.Item("CatOrderID"))
Else
TreeView1.Nodes.Add(READER.Item("OrigCatOrderID"), READER.Item("OrigCatOrderID"))
TreeView1.Nodes(READER.Item("OrigCatOrderID")).Nodes.Add(READER.Item("CatOrderID"), READER.Item("CatOrderID"))
End While
我在数据库中有很多记录,我需要像这样动态填充我的树视图:下面只是我需要的示例:
TreeView1.Nodes(a).ChildNodes.Add(New TreeNode("ChildNode " & b))
TreeView1.Nodes(a).ChildNodes(b).ChildNodes.Add(New TreeNode("ChildNode 2 lvl " & b))
我正在从 MySQL Db 获取记录,我需要知道如何将多级 ChildNode 添加到循环中 For ... Next 等...
您有什么建议或想法吗???
如果你想使用不同级别的树节点,你可以使用查找功能
Dim TempNode As TreeNode = TreeView1.Nodes.Find("Node where I want to add SubNode", True).FirstOrDefault
TempNode.Nodes.Add("SubNode", "SubNode")
通过这种方式,您可以将子节点添加到您选择的任何节点。
.Find("key",True)
找到具有以下键的树节点,.FirstOrDefault
首先选择。最后,您只需将新的子节点添加到临时节点。
您认为您是从 MySql 动态获取它的。它可能会导致错误,例如“正在从错误的线程调用在此控件上执行的操作。使用 Contol.Invoke 或 Control.BeginInvoke 编组到正确的线程以执行此操作。”只需将 TempNode.Nodes.Add("SubNode", "SubNode")
更改为 TreeView1.Invoke(Sub() TempNode.Nodes.Add("SubNode", "SubNode"))
示例:
Dim comm As String = "SELECT * FROM YourTableName"
Dim SqlCmnd as SqlCommand = New SqlCommand(comm, YourMySqlConnection)
Dim READER As SqlDataReader
READER = SqlCmnd.ExecuteReader
While READER.Read
Dim NewNode As TreeNode = New TreeNode(READER.Item("origCategoryID"))
TreeView1.Nodes.Add(NewNode)
NewNode.Nodes.Add(READER.Item("categoryOrderID"))
End While
READER.Close()
示例 2:
While READER.Read
If TreeView1.Nodes.Find(READER.Item("OrigCatOrderID"), True).Length > 0 Then
Dim NewNode As TreeNode = TreeView1.Nodes.Find(READER.Item("OrigCatOrderID"), True).FirstOrDefault
NewNode.Nodes.Add(READER.Item("CatOrderID"), READER.Item("CatOrderID"))
Else
TreeView1.Nodes.Add(READER.Item("OrigCatOrderID"), READER.Item("OrigCatOrderID"))
TreeView1.Nodes(READER.Item("OrigCatOrderID")).Nodes.Add(READER.Item("CatOrderID"), READER.Item("CatOrderID"))
End While