2010-09-13 128 views
0

我有一個類,讓我們調用MyClass。 在這個類中,我有一個TreeView屬性,我們可以調用myTreeView 在我的代碼中,我填充此TreeView的節點,以便稍後使用它。 然後,當實際使用它時,我無法從myClass中獲取所有節點,並將它們放在窗體上的樹視圖控件中。從TreeView實例填充TreeView

我已經試過兩件事情:

1.

aTreeView=MyClass.myTreeView 

它只是沒有返回值(TreeView控件爲空)

2.

For Each newNode As TreeNode In MyClass.myTreeView.Nodes 
     aTreeView.Nodes.Add(newNode) 
    Next 

我得到相同結果在這裏...一個空的TreeView

奇怪的是,調試時,MyClass中的TreeView填充了適當的值,並且在循環中,newNode不是空的,實際上有些東西,但由於某種原因它沒有顯示任何內容。

任何幫助,將不勝感激,

感謝

回答

2

的第一個片段不能工作,因爲aTreeView是存儲在窗體的控件集合TreeView的一個參考。這個賦值只是改變了引用,它並沒有改變用戶正在查看的實際TreeView。

第二個片段有缺陷,因爲TreeNode有一個所有者。 TreeView。該代碼將清空你的類中的TreeView。移動的節點可能不可見,因爲您使用了錯誤的引用,可能是錯誤的表單實例。一定要使用用戶正在查看的那個。您需要使用TreeNode.Clone()方法來創建節點的副本。

+0

偉大工程...... THX我會添加代碼 – Iggy 2010-09-13 20:33:36

1

感謝漢斯帕桑特的答案,這是如何使它工作...

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