为Treeview控件的节点编号

时间:2012-10-30 10:59:51

标签: c# treeview

是否可以将Treeview控件的节点命名为Matrix?

例如:

Parent Node
   --> Child Node
       --> Grand child node
Other Parent Node

像这样的

-- Node1
   --> Node11
       --> Node111
       --> Node112
         --> Node1121
   --> Node12
   --> Node13
-- Node2

我按按钮点击btnAddNodebtnAddChildNode添加节点和子节点
现在我只是递增一个计数器值,该值无法捕获节点是子节点还是父节点(只是递增

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是使用这两种简单的方法。首先是将TreeNodes添加到TreeView控件,第二个将子节点添加到已添加的节点。

public void AddNode(TreeView parent, string text)
{
    if (parent != null)
    {
         parent.Nodes.Add(new TreeNode(text + (parent.Nodes.Count + 1).ToString()));
    }
}
public void AddChildNode(TreeNode parent)
{
    if(parent != null)
    {
         string number = parent.Text;
         parent.Nodes.Add(new TreeNode(number + (parent.Nodes.Count + 1).ToString()));   
    }
}

要检查它是否有效,你可以这样做:

AddNode(treeView1, "Node");
AddNode(treeView1, "Node");
AddNode(treeView1, "Node");
AddChildNode(treeView1.Nodes[0]);
AddChildNode(treeView1.Nodes[0]);
AddChildNode(treeView1.Nodes[0]);
AddChildNode(treeView1.Nodes[1]);
AddChildNode(treeView1.Nodes[2]);
AddChildNode(treeView1.Nodes[2]);

答案 1 :(得分:0)

btnAddNode和btnAddChildNode有什么区别?根节点是否添加了btnAddNode,所有其他子节点都添加了btnAddChildNode?

原则上,您可以像以下代码一样使用它来查找要添加的节点的深度。

   counter = 0 ; 
   while (node.Parent != null)
   {
       node = node.Parent;
       counter++;
   }