2011-10-25 3 views
8
private void PrintRecursive(TreeNode treeNode) 
    { 
     foreach (TreeNode tn in treeNode.Nodes) 
     { 
      PrintRecursive(tn); 
     } 
    } 

오류가 발생합니다. Foreach가 메서드 그룹에서 작동하지 않습니다. '방법 그룹'을 호출 하시겠습니까? ?Foreach가 메서드 그룹에서 작동하지 않습니다.

+1

'Nodes '와 같은 방법입니다. 어떻게 선언됩니까? 그것이 메소드라면'foreach (treeNode.Nodes())'대신에 foreach를 호출해야한다. – Andrei

+0

@RedFilter TreeNode 클래스는 메타 데이터에서 가져온 것입니다. 닷넷에서 왔어, 그건 내 것이 아니야. –

+0

TreeNode에 전체 유형 이름을 제공해 주시겠습니까? WinForms에서와 같이 잘못된 형식을 참조한 것으로 보입니다. –

답변

6

당신이 포장 된 TreeView 컨트롤을 사용하는 가정이 아니라 그것은 ChildNodes해야한다 :

foreach (TreeNode node in treeNode.ChildNodes) ... 
1

TreeView.Nodes TreeView 컨트롤의 루트 노드를 나타냅니다의 TreeNode 개체의 컬렉션을 제공합니다.

루트 노드의 하위 노드에 액세스하려면 노드의 ChildNodes 속성을 사용하십시오.

foreach는

void PrintRecursive(TreeNode node) 
{ 
    foreach(TreeNode node in node.ChildNodes) 
    { 
    PrintRecursive(node); 
    } 
} 
+0

작동하지 않습니다. –

+0

@ user966638 오류가 발생합니까? – Damith

11

여기서 문제가 Nodes는 방법이다하지만 당신은 속성으로 사용 : 그래서 코드 줄이

foreach (TreeNode tn in treeNode.Nodes) 

한다 루프

void PrintRecursive(TreeNode node) 
{ 
    for(int i=0; i <node.ChildNodes.Count; i++) 
    { 
    PrintRecursive(node.ChildNodes[i]); 
    } 
} 

에 사용 또는 사용 be

foreach (TreeNode tn in treeNode.Nodes()) 
+0

야, U 락 ... –

관련 문제