2015-04-29 76 views
1

我的Windows窗體中有一個樹形視圖。我使用以下函數來選擇該樹視圖中的節點。如何在C#窗體中的TreeView中選擇子節點

private void FindAndSelect(TreeNodeCollection collection, object toSelect) 
    { 
     //problem in this line becouse while converting the toSelect into IstructuredEntity is showing null. 

     var entityToSelect = toSelect as Decoupling::IStructureEntity; 

     if (entityToSelect == null) //just select the Structure root 
     { 
      _treeView.SelectedNode = _treeView.Nodes[0]; 
      return; 
     } 
     foreach (TreeNode tn in collection) 
     { 
      var treeNodeEntity = tn.Tag as IStructureEntity; 
      if (treeNodeEntity != null && treeNodeEntity.Id == entityToSelect.Id) 
      { 

       _treeView.SelectedNode = tn; 

      } 

      FindAndSelect(tn.Nodes, toSelect); 
     } 
    } 

但上面的函數只能選擇treeView中的父節點,我想選擇並突出顯示子節點。 任何人都可以請指導我什麼我需要改變這個工作?

回答

2

TreeView.Nodes只會給你父節點。您可能必須實現ParentNode.ChildNode才能獲取樹中的childnode。點擊here獲取更多信息

foreach (TreeNode tn in treeView1.Nodes) 
{ 
    // get parent node here 
    foreach (TreeNode child in tn.Nodes) 
    { 
    //get child node here 
    } 
} 
+0

我已經試過了,但我無法突出顯示子節點。父節點我很容易選擇並突出顯示,但子節點無法選擇。任何其他建議? –

相關問題