我有以下搜索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;
中有人可以告诉我什么是错的,或者我如何在这里添加所有找到的节点?
答案 0 :(得分:0)
您无法将同一节点添加到两棵树中。因此,如果您找到一个,并尝试将其添加到newNode
,则会获得ArgumentException
。
我建议不要使用TreeNode
来代替List<TreeNode>
。