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

エラーが発生しました。Foreachがメソッドグループ上で動作できません。あなたは 'メソッドグループ'を呼び出すつもりでしたか?あなたがパッケージ化されTreeViewコントロールを使用していると仮定すると、Foreachがメソッドグループ上で動作できません

+1

'Nodes'のような方法です。それはどのように宣言されていますか?それがメソッドの場合は、代わりに 'foreach(treeNode.Nodes())' TreeNode tnを呼び出す必要があります。 – Andrei

+0

@RedFilter TreeNodeクラスはメタデータからのものです。それは.Netのもので、私のものではありません。 –

+0

TreeNodeのフルタイプ名を入力してください。 WinFormsのような間違ったタイプを参照しているようです。 –

答えて

6

は、それがChildNodesすべきではない?

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

TreeView.Nodesは、TreeViewコントロールのルートノードを表し、TreeNodeオブジェクトのコレクションを提供します。

ルートノードの子ノードにアクセスするには、ノードのChildNodesプロパティを使用します。

ここでの問題はNodesは方法ですが、あなたがプロパティとして使用することでループ

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

またはforeachの

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

動作しません。 –

+0

@ user966638エラーが表示されますか? – Damith

11

を使用するために使用して:) だから、このコード行が

foreach (TreeNode tn in treeNode.Nodes) 

必要がありますbe

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

Dude、U rock ... –

関連する問題