我是C#的初学者,对TreeView有一个简单的问题。
我想做这样的事情:
> -Root
> -child1
> -child2
> -child3
> -....
我有这个:
child.Text = des[j];
root.Nodes.Add(child);
但它只是产生这样的东西:
> -Root
> -child1
我想:
使用不同的名称:root1,root2,root3等
for (i = 0; i < 10; i++)
{
TreeNode root = new TreeNode();
}
答案 0 :(得分:1)
您需要将TreeNode添加到子节点的Nodes集合中,而不是根节点。
child.Text = des[j];
root.Nodes.Add(child);
TreeNode NextChild = new TreeNode();
NextChild.Text = "something";
child.Nodes.Add(NextChild);
对于您的第二个问题,您需要将这些treenode存储在某种数据结构中。如果你想为每个人命名,哈希表是一个不错的选择。
Hashtable myHT = new Hashtable();
for (int i = 0; i < 10; i++)
{
TreeNode root = new TreeNode();
myHT.Add("Root" + i, root);
}
然后您可以像
一样访问它们TreeNode myRoot = (TreeNode)myHT["Root1"];
如果您对Generics感到满意,可以使用System.Collections.Generic.Dictionary代替通用版本。
答案 1 :(得分:0)
您只需要跟踪当前节点和要插入的子节点。
i = 0
,当前节点值是根节点。i > 0
,当前节点值是插入的最后一个子节点。然后,你可以尝试这样的事情......
TreeNode current = new TreeNode(); // Root node.
current.Text = string.Format("Root");
for (int i = 0; i < 10; i++)
{
TreeNode child = new TreeNode();
child.Text = string.Format("Child: {0}", i);
current.Nodes.Add(child);
current = child;
}
此代码的结果将是:
- 根
- 孩子:0
- 孩子:1
- 孩子:2