【发布时间】:2016-04-16 19:17:01
【问题描述】:
我需要在 Winforms 上过滤树。 基本上,树视图包含注册表中的列表以及分支上的所有键
现在,当我运行该方法在所有树中搜索某些值时,我得到的结果只是树的一部分,我无法保存从结果连接到根的分支。 有任何方法可以保存最终结果将正确显示的层次结构。 ?
我试图将它放在包含带有级别、索引和完整路径的字符串的字典上。任何想法?
这是搜索代码。字典基本上是为了显示结果。用于测试
Dictionary<string, TreeNode> Result = new Dictionary<string, TreeNode>();
private void SearchforNodes(TreeNodeCollection nodes)
{
bool x = true;
while (x)
{
foreach (TreeNode item in nodes)
{
x = ReadAllKeys(item);
}
}
}
bool flag = true;
private bool ReadAllKeys(TreeNode node)
{
foreach (TreeNode item in node.Nodes)
{
if (item.Nodes.Count > 0)
{
ReadAllKeys(item);
}
else
{
var result = SearchKey(item);
if (result != null)
{
if (!Result.Keys.Contains(string.Format("Index: {0} level: {1} Text: {2} FullPathTree: {3} ", result.Index, result.Level, result.Text, result.FullPath)))
{
Result.Add(string.Format("Index: {0} level: {1} Text: {2} FullPathTree: {3} ", result.Index, result.Level, result.Text, result.FullPath), result);
flag = false;
}
else
{
flag = false;
}
}
}
}
return flag;
}
private TreeNode SearchKey(TreeNode node)
{
if (node.Text.ToUpper().Contains(txtSearch.Text.ToUpper()))
{
return node;
}
else
{
return null;
}
}
【问题讨论】:
标签: c# recursion treeview registry treenode