我在 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'。
希望有人能幫我想辦法讓所有的節點和子節點都失控。感謝并抱歉這么長的解釋。
uj5u.com熱心網友回復:
通過迭代 TreeView->Nodes ,您只能獲得頂級節點。TreeView->Nodes(屬于 TreeNodeCollection 型別)有一個 Find(string, boolean) 方法,可用于搜索具有特定文本的節點。你可以像這樣呼叫這個方法
Repository_TreeView.Nodes.Find(specificPTN, true)
獲取所有匹配的節點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/351266.html
上一篇:C#變數賦值無法獲取
