2013-12-17 86 views
0

我有一個類,它以System.Windows.Forms中的一個類型爲TreeNode的變量開頭。該類的功能工作是添加一些節點到這個變量..但問題是,當我嘗試添加一些節點,它的調試器凍結,並沒有顯示任何響應..我搜索了互聯網,但我沒有發現這樣一個問題。這是那些功能TreeNode.Add()不顯示任何響應

注意一個:被註釋掉

public Node Factor() 
    { 
     Node result = new Node(); 
     if (count < tokens.Count && tokens[count] == TokenType.LeftParentheses) 
     { 
      this.Match(TokenType.LeftParentheses); 
      result = this.Expression(); 
      if (!this.Match(TokenType.RightParentheses)) 
       return null; 
      result.viewnode.Text = "Expression"; 
     } 
     else if (tokens[count] == TokenType.Num) 
     { 
      if (!this.Match(TokenType.Num)) 
       return null; 
      NumberNode nnode = new NumberNode(lexemes[count - 1]); 
      nnode.childs = "NumberNode : Value " + nnode.value + '\n'; 
      nnode.viewnode = new TreeNode("Number - Value = " + nnode.value); 
      result = nnode; 
      result.viewnode = nnode.viewnode; 
      result.viewnode.Nodes.Add(nnode.viewnode); 
     } 
     else 
     { 
      if (!this.Match(TokenType.ID)) 
       return null; 
      IdNode inode = new IdNode(lexemes[count - 1], "0"); 
      inode.childs = "IdNode - Value : " + inode.name + '\n'; 
      inode.viewnode = new TreeNode("Id - " + inode.name); 
      result = inode; 
      result.viewnode = inode.viewnode; 
      //the program freezes at this line 
      inode.viewnode.Nodes.Add(inode.viewnode); 
     } 
     return result; 
    } 
+1

那麼你似乎是添加節點本身,這勢必會造成一個問題或兩個。 –

+0

result.viewnode.nodes.Add,與上面假定的一樣。 –

+0

@TonyHopkinson謝謝..它工作我明白:) –

回答

1

您將節點添加到自己的線產生的問題。

應result.viewnode ...