【发布时间】:2021-12-20 04:19:45
【问题描述】:
WinForm 中的 TreeView 控件有问题。问题是,我需要通过使用 while 循环并使用先前插入到控件中的节点作为父节点搜索条件来自动化插入节点的过程。
我的问题出现了,当我在控件中查找节点时,我使用以下代码:
foreach (TreeNode singleNode in Repository_TreeView.Nodes)
{
if (singleNode.Text.Contains(specificPTN) == true)
{
Repository_TreeView.SelectedNode = singleNode;
}
但是,通过这种方式,我只能获取层次结构中最高级别的节点。所以,例如:
/--------------------------------------------------\
| + rootnode1 |
| | +---> childnode1 |
| | +---> grandchildnode1 |
| | | |
| | +---> grandchildnode1 |
| | |
| + rootnode2 |
| +---> childnode2 |
| +---> grandchildnode2 |
| | |
| +---> grandchildnode2 |
| |
| |
\--------------------------------------------------/
在这种情况下,当我需要获取所有其他子节点时,我的代码只会获取节点“rootnode1”和“rootnode2”。
我也尝试使用这个 lambda 表达式按名称查找节点:
TreeNode[] parentNodes = Repository_TreeView.Nodes
.Cast<TreeNode>()
.Where(r => r.Text == specificPTN)
.ToArray();
然而,结果总是一样的,“rootnode1”和“rootnode2”总是被找到。
我希望有人能帮我找到一种方法让所有节点和子节点失控。感谢并为冗长的解释感到抱歉。
【问题讨论】:
标签: c# winforms treeview treenode