-1
我目前正在研究一個包含TreeView的WinForm。 不知何故,我無法正確填充TreeView。C#TreeView以編程方式向GrandChildren添加子節點等等
更多的知名度:
Parent Device -
|-ChildDevice1-
| |-GrandChild1 (not connected with ChildDevice2)
|-ChildDevice2
AnotherParentDevice...
and so on...
(this is how it should look like)
我試着給設備的索引號來識別家長和孩子。
treeView1.Nodes.Add(new TreeNode("Parent"));
treeView1.Nodes[parentid].Nodes.Add(new TreeNode("Child"));
treeView1.Nodes[parentid].Nodes[childid].Nodes.Add(new TreeNode("GrandChild"));
我可以用上面的一種解決方案,但這些設備可以有無限的孩子,我不能去,如:
treeView1.Nodes[parentid].Nodes[childid].Nodes[GrandChild1].Nodes[GrandChild2].Nodes.Add(new TreeNode("GrandChild2"));
我想你們明白。
編輯: 我正在使用的方法是通過註冊表,並返回USB設備描述,如果該設備有任何孩子,該方法再次進入並給孩子(等等) 。這就是爲什麼我需要一棵樹
PS .:對不起我的英語不好。
使用收集集合等等和**遞歸**來填充這樣的樹。集合可以是任何東西('IList','IEnumerable',...)。 – Sinatr 2015-02-10 16:00:22
你的輸入數據是什麼樣的? – Servy 2015-02-10 16:04:19
Sinatr,謝謝你的回答我會試試看。 @Servy,輸入總是一個字符串。我正在使用的方法是通過註冊表,並返回USB設備描述,如果該設備有任何孩子,該方法再次進入並給孩子。這就是爲什麼我需要一棵樹。 – Megajin 2015-02-11 09:02:09