我有一个类,让我们调用MyClass。在这个类中,我有一个TreeView属性,让我们在代码中调用myTreeView,我填充了这个TreeView的节点,以便以后可以使用它。然后,当需要实际使用它时,我无法从myClass获取所有节点,并将它们放入表单的树视图控件中。
我试过两种方法:
1.
aTreeView=MyClass.myTreeView它什么也不返回(TreeView为空)
2.
For Each newNode As TreeNode In MyClass.myTreeView.Nodes
aTreeView.Nodes.Add(newNode)
Next我在这里得到了同样的结果。一个空的TreeView
奇怪的是,在调试时,MyClass中的TreeView填充了适当的值,并且在循环中,newNode不是空的,实际上有一些东西,但由于某种原因,它没有显示任何东西。
任何帮助都会很感激,
谢谢
发布于 2010-09-14 04:18:39
第一个代码段无法工作,因为aTreeView是对存储在窗体的TreeView集合中的控件的引用。赋值只是更改了引用,它不会更改用户正在查看的实际TreeView。
第二个片段是有缺陷的,因为TreeNode有一个所有者。TreeView。代码将清空类中的TreeView。移动的节点可能看不到,因为您使用了错误的引用,可能是错误的表单实例。请确保使用用户正在查看的文件。您需要使用TreeNode.Clone()方法来创建节点的副本。
发布于 2010-09-14 04:35:02
感谢Hans Passant的回答,这就是如何让它工作……
For Each newNode As TreeNode In MyClass.myTreeView.Nodes
Dim cloneNode as new TreeNode
cloneNode=newNode.Clone()
aTreeView.Nodes.Add(cloneNode)
Next https://stackoverflow.com/questions/3703997
复制相似问题