Vb.net 从TreeView实例填充TreeView

Vb.net 从TreeView实例填充TreeView,vb.net,treeview,Vb.net,Treeview,我有课,我们叫我的课吧。 在这个类中,我有一个TreeView属性,我们称之为myTreeView 在我的代码中,我填充了这个树视图的节点,以便以后可以使用它。 然后,当实际使用它时,我无法从myClass中获取所有节点并将它们放在表单上的树视图控件中 我试过两件事: 一, 它只是不返回任何内容(TreeView为空) 二, 我在这里得到同样的结果。。。空树丛 奇怪的是,在调试时,MyClass中的TreeView很好地填充了正确的值,在循环中,newNode不是空的,实际上有一些内容,但出于某

我有课,我们叫我的课吧。 在这个类中,我有一个TreeView属性,我们称之为myTreeView 在我的代码中,我填充了这个树视图的节点,以便以后可以使用它。 然后,当实际使用它时,我无法从myClass中获取所有节点并将它们放在表单上的树视图控件中

我试过两件事:

一,

它只是不返回任何内容(TreeView为空)

二,

我在这里得到同样的结果。。。空树丛

奇怪的是,在调试时,MyClass中的TreeView很好地填充了正确的值,在循环中,newNode不是空的,实际上有一些内容,但出于某种原因,它没有显示任何内容

任何帮助都将不胜感激


谢谢

第一个代码段无法工作,因为aTreeView是对存储在表单控件集合中的TreeView的引用。分配只是更改了引用,而没有更改用户正在查看的实际树视图


第二个片段有缺陷,因为TreeNode有所有者。树景。代码将清空类中的树视图。移动的节点可能不可见,因为您使用了错误的引用,可能是错误的表单实例。确保使用用户正在查看的一个。您需要使用TreeNode.Clone()方法来创建节点的副本。

第一个代码段无法工作,因为aTreeView是对存储在表单控件集合中的TreeView的引用。分配只是更改了引用,而没有更改用户正在查看的实际树视图


第二个片段有缺陷,因为TreeNode有所有者。树景。代码将清空类中的树视图。移动的节点可能不可见,因为您使用了错误的引用,可能是错误的表单实例。确保使用用户正在查看的一个。您需要使用TreeNode.Clone()方法来创建节点的副本。

多亏了Hans Passant的回答,这就是如何使其工作的方法

For Each newNode As TreeNode In MyClass.myTreeView.Nodes 
    Dim cloneNode as new TreeNode
    cloneNode=newNode.Clone()
    aTreeView.Nodes.Add(cloneNode) 
Next 

多亏了汉斯·帕桑的回答,这就是如何让它工作的

For Each newNode As TreeNode In MyClass.myTreeView.Nodes 
    Dim cloneNode as new TreeNode
    cloneNode=newNode.Clone()
    aTreeView.Nodes.Add(cloneNode) 
Next 
For Each newNode As TreeNode In MyClass.myTreeView.Nodes 
    Dim cloneNode as new TreeNode
    cloneNode=newNode.Clone()
    aTreeView.Nodes.Add(cloneNode) 
Next