2014-03-07 5 views
2

의 모든 부모 노드를 식별 내가 이렇게 보이는 나무가있다. 기본적으로 exampleTree.Nodes.GetAllParents() 메서드가 필요합니다.트 리뷰

+1

당신은 무엇을 시도? 무엇이 효과가 없었습니까? 신원을 확인하는 것이 무엇을 의미합니까? 반복을 통해 각각을 살펴 보는 것을 의미합니까? "모든 부모님을"얻을 수있는 방법이 있는지 묻고 있습니까? 우리는 당신을 도울 더 많은 정보가 필요합니다. – Tim

+0

네, 기본적으로'exampleTree.Nodes.GetParents();와 같은 것을 할 수있는 방법이 있는지 물어보고 있습니다. 실제로 어떤 것도 시도하지는 않았습니다. 방법을 연구하고 있습니다. 그러나 지금까지 나는 정말 유용한 모든 것을 발견하지 못했습니다. – Schadenfreude

+0

나는 그것을 반영하기 위해 귀하의 게시물을 업데이트 하겠지만, 약간 불명확하고 일부 사람들은 아마도 그것을 downvote 것입니다. – Tim

답변

3

내가 사용하는 확장 방법 중 몇 :

public static class TreeViewEx { 

    public static List<TreeNode> GetParentNodes(this TreeView treeView) { 
    List<TreeNode> results = new List<TreeNode>(); 
    foreach (TreeNode node in treeView.Nodes) { 
     results.AddRange(GetNodes(node)); 
    } 
    return results; 
    } 

    private static List<TreeNode> GetNodes(TreeNode parentNode) { 
    List<TreeNode> results = new List<TreeNode>(); 
    if (parentNode.Nodes.Count > 0) { 
     results.Add(parentNode); 
     foreach (TreeNode node in parentNode.Nodes) { 
     results.AddRange(GetNodes(node)); 
     } 
    } 
    return results; 
    } 

} 

사용법과 같은 것 :

List<TreeNode> parents = treeView1.GetParentNodes(); 
+0

이것이 유용 할 것 같은데, 나는 그것을 시도하고 다시 돌아올거야 :) – Schadenfreude

+0

이것은 훌륭하게 작동합니다, 감사합니다! – Schadenfreude

+0

@LarsTech 부담하다. 이것들은 실제적인 방법이 아니지만 나는 이것들을 함께 모았다. (나는 부모님을 필요로하지 않는다. 단지 "모두"). – DonBoitnott