我目前正在开发一个包含TreeView的WinForm。 不知怎的,我无法正确填充TreeView。
提高可见度:
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:抱歉我的英文不好。
答案 0 :(得分:0)
我自己找到了解决方案。
由于我使用的是递归方法,因此不必为父母提供id。因为他们已经有了一个。
我的代码如下所示:
//Generate variables for the recursive Method
TreeView tree = treeView1;
TreeNode treeNode;
//You set the current Node to be the Parent
treeNode = tree.Nodes.Add("rootDevice");
//Now if the root device has a child
treeNode = tree.Nodes.Add("childDevice");
// If the child has a child
treeNode = tree.Nodes.Add("grandChildDevice");
等等。 方法将跳回并使用下一个根设备作为父。这很简单。