无法使用新节点从C#中的TreeView收集现有节点

时间:2013-09-26 10:48:48

标签: c# c#-4.0 treeview

我有以下搜索Treeview 的功能:

public static TreeNode FindAllNamesInTreeView(TreeView treeView, String name, int StartNode = -1, bool Searchilds = true)
{
   TreeNode newNode = new TreeNode("SRes");
   newNode.Nodes.Add("Test");

   // check if we have a treeview
   if (treeView == null)
      return null;

   // iterate through the treeview's root nodes
   for (int i = 0; i < treeView.Nodes.Count; i++)
   {
      // for each root node try to find the node with the name we want
      TreeNode foundNode = FindNameInTreeView(treeView.Nodes[i], name, StartNode, Searchilds);

      // if we found the node, return it
      if (foundNode != null)
         if (TheIndexOf(foundNode) > StartNode)
            newNode.Nodes.Add( foundNode); //Error here!
   }

   // no node found
   return newNode;
}

执行newNode.Add(foundNode);我有以下例外

&#39;类型&#39; System.ArgumentException&#39;的第一次机会异常发生在System.Windows.Forms.dll&#39;

有人可以告诉我什么是错的,或者我如何在这里添加所有找到的节点?

1 个答案:

答案 0 :(得分:0)

您无法将同一节点添加到两棵树中。因此,如果您找到一个,并尝试将其添加到newNode,则会获得ArgumentException

我建议不要使用TreeNode来代替List<TreeNode>

相关问题