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

Tôi gặp lỗi: Foreach không thể hoạt động trên nhóm phương thức. Bạn có ý định gọi 'nhóm phương pháp' không?Foreach không thể hoạt động trên nhóm phương thức

+1

Có vẻ như 'Nodes' là một phương pháp. Nó được tuyên bố như thế nào? Nếu nó là một phương thức, bạn nên gọi 'foreach (TreeNode tn trong treeNode.Nodes())' thay thế. – Andrei

+0

@RedFilter TreeNode lớp là từ siêu dữ liệu. Đó là từ .Net, nó không phải của tôi. –

+0

Bạn có thể vui lòng cung cấp tên đầy đủ cho TreeNode của bạn không? Có vẻ như bạn đã tham chiếu nhầm loại, loos giống như từ WinForms. –

Trả lời

6

Giả sử bạn đang sử dụng điều khiển TreeView đóng gói, không nên nó được ChildNodes:

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

TreeView.Nodes đưa ra một bộ sưu tập của các đối tượng TreeNode đại diện cho nút gốc trong điều khiển TreeView.

Để truy cập các nút con của nút gốc, hãy sử dụng thuộc tính ChildNodes của nút.

ví dụ: sử dụng vòng lặp for

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

hoặc sử dụng foreach

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

Nó không hoạt động. –

+0

@ user966638 bạn có gặp lỗi không? – Damith

11

Vấn đề ở đây là Nodes là một phương pháp nhưng bạn sử dụng như tài sản :) Vì vậy, dòng mã này

foreach (TreeNode tn in treeNode.Nodes) 

nên là

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

Dude, U rock ... –

Các vấn đề liên quan