不能使用新节点从 C# 中的树视图收集现有节点
本文关键字:节点 视图 新节点 不能 | 更新日期: 2023-09-27 18:32:49
我有以下功能用于搜索树视图:
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) 时;我有以下例外:
"System.Windows.Forms中发生了类型为'System.ArgumentException'的第一次机会异常.dll"
谁能告诉我出了什么问题,或者我如何将收集所有找到的节点添加到一个节点中?
不能将同一节点添加到两个树中。 因此,如果您找到一个,并尝试将其添加到 newNode
,您将获得一个ArgumentException
。
与其使用TreeNode
,我建议返回一个List<TreeNode>
。