如何查找树视图子节点参考 [英] How to find Tree View Child Node Reference
问题描述
我正在VB中动态填充3级树状视图.我可以添加一个新的一级节点并设置一个对象变量,该变量允许我对其进行引用以更改值和其他属性,但是似乎无法对子节点执行相同的操作.这适用于第一级:
tvLevels.Nodes.Add(New TreeNode(strNodeName))
nodeLevel1 = tvLevels.FindNode(strNodeName)
nodeLevel1.Value = datareader("AALevelID")
但这不适用于子节点:
nodeLevel1.ChildNodes.Add(新的TreeNode(strNodeName))
nodeLevel2 = tvLevels.FindNode(strNodeName)
nodeLevel2.Value = datareader("AALevelID")
我收到错误消息
对象引用未设置为对象的实例"
这些对象声明为:
将nodeLevel1调暗为新的TreeNode
将nodeLevel2调暗为新的TreeNode
任何帮助将不胜感激.
I am dynamically populating a 3 level tree view in VB. I can add a new first level node and set a object variable that allows me to reference it to change the value and other properties, but I can''t seem to do the same with the child node. This works for the first level:
tvLevels.Nodes.Add(New TreeNode(strNodeName))
nodeLevel1 = tvLevels.FindNode(strNodeName)
nodeLevel1.Value = datareader("AALevelID")
but this doesn''t work for child nodes:
nodeLevel1.ChildNodes.Add(New TreeNode(strNodeName))
nodeLevel2 = tvLevels.FindNode(strNodeName)
nodeLevel2.Value = datareader("AALevelID")
I get the error
"Object reference not set to an instance of the object"
The objects are declared as:
Dim nodeLevel1 As New TreeNode
Dim nodeLevel2 As New TreeNode
Any help would be appreciated.
推荐答案
所有错误.当您编写New TreeNode(strNodeName)
时,它已经返回了您的节点.您正在填充.所有对象都是您的,您怎么会想到使用FindNode
的想法?为什么要搜索所有内容?
您的FindNode
返回null,并且您正在尝试通过nodeLevel2.Value
在下一行中取消引用该null,从而引发异常.
—SA
All wrong. When you writeNew TreeNode(strNodeName)
, it already returns you the node. You are populating. All object are yours, how could you come to the idea of usingFindNode
? Why searching for anything at all?
YourFindNode
returns you null, and you are trying to de-reference the null in next line vianodeLevel2.Value
which throws the exception.
—SA
不漂亮,但可以使用:
nodeLevel1.ChildNodes.Add(新的TreeNode(strNodeName))
对于tvLevels.Nodes中的每个nodeLevel1
对于nodeLevel1.ChildNodes中的每个nodeLevel2
如果nodeLevel2.Text = strNodeName然后
nodeLevel2.Value = datareader("AALevelID")
如果结束
下一个
下一个
Not pretty but it works:
nodeLevel1.ChildNodes.Add(New TreeNode(strNodeName))
For Each nodeLevel1 In tvLevels.Nodes
For Each nodeLevel2 In nodeLevel1.ChildNodes
If nodeLevel2.Text = strNodeName Then
nodeLevel2.Value = datareader("AALevelID")
End If
Next
Next
这篇关于如何查找树视图子节点参考的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!