如何解决VB NET在树视图中添加多个ChildNode
我在数据库中有很多记录,我需要像这样动态填充我的树视图:以下只是我所需要的示例:
TreeView1.Nodes(a).ChildNodes.Add(New TreeNode("ChildNode " & b))
TreeView1.Nodes(a).ChildNodes(b).ChildNodes.Add(New TreeNode("ChildNode 2 lvl " & b))
我正在从MySQL Db获取记录,我需要知道如何将多级ChildNodes添加到循环中... ...等等...
您有什么建议或想法吗?
解决方法
如果要使用各种级别的Treenode,可以使用“查找”功能
Dim TempNode As TreeNode = TreeView1.Nodes.Find("Node where I want to add SubNode",True).FirstOrDefault
TempNode.Nodes.Add("SubNode","SubNode")
这样,您可以将SubNode添加到您选择的任何节点。
.Find("key",True)
使用以下键查找树节点,.FirstOrDefault
首先选择。最后,您只需将新的SubNode添加到Tempnode。
您认为您是从MySql动态获取它的。可能会导致错误,例如“正在从错误的线程调用此控件上执行的操作beeing。使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。