首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从TreeView实例填充TreeView

从TreeView实例填充TreeView
EN

Stack Overflow用户
提问于 2010-09-14 04:08:47
回答 2查看 2.4K关注 0票数 0

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

我试过两种方法:

1.

代码语言:javascript
复制
aTreeView=MyClass.myTreeView

它什么也不返回(TreeView为空)

2.

代码语言:javascript
复制
    For Each newNode As TreeNode In MyClass.myTreeView.Nodes
        aTreeView.Nodes.Add(newNode)
    Next

我在这里得到了同样的结果。一个空的TreeView

奇怪的是,在调试时,MyClass中的TreeView填充了适当的值,并且在循环中,newNode不是空的,实际上有一些东西,但由于某种原因,它没有显示任何东西。

任何帮助都会很感激,

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-14 04:18:39

第一个代码段无法工作,因为aTreeView是对存储在窗体的TreeView集合中的控件的引用。赋值只是更改了引用,它不会更改用户正在查看的实际TreeView。

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

票数 2
EN

Stack Overflow用户

发布于 2010-09-14 04:35:02

感谢Hans Passant的回答,这就是如何让它工作……

代码语言:javascript
复制
For Each newNode As TreeNode In MyClass.myTreeView.Nodes 
    Dim cloneNode as new TreeNode
    cloneNode=newNode.Clone()
    aTreeView.Nodes.Add(cloneNode) 
Next 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3703997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档