2012-10-04 16 views
3

我有我的頁面上有兩個RichTextboxes後。我將它們用作Book界面。有兩個按鈕可以前後翻轉。段顯示了另一種元素的子甚至明確的RichTextbox

遍歷通過網頁前工作正常。但是,一旦我回擊,VS2010拍攝異常

Element is already the child of another element. 

這是我在RichTextbox中添加的段落。即使我在清理兩個RichTextboxes之前充斥着新數據,也會發生這種情況。

我的代碼如下。我錯過了什麼?

TxtBlobLeft.Blocks.Clear(); 
     TxtBlobRight.Blocks.Clear(); 


     foreach (Paragraph item in pagesStack[count].paras) 
     { 
      TxtBlobLeft.Blocks.Add(item); //Throws exception here 
     } 


     foreach (Paragraph item in pagesStack[count + 1].paras) 
     { 
      TxtBlobRight.Blocks.Add(item); 
     } 

注意:pagesStack是一個帶Paras(即List)作爲屬性的自定義對象。

+0

我不是在RichTextBox控件上的專家,所以我不知道這裏的一些您的屬性。有沒有需要更全面解釋的自定義對象?我猜TxtBlobLeft是一個RichTextbox,但我沒有找到Blocks屬性或理解你如何添加類型段的項目。儘管如此,似乎您在段落對象中引用了在返回並重新添加之前需要刪除的富文本框。 –

+0

是的。 TxtBlobLeft是RichTextbox。是的,顯然TxtBlobLeft.Blocks.Clear()不會刪除該元素。 –

+0

我遇到過類似的問題。我認爲這是RTB中的一個錯誤。 – jv42

回答

2

好像清除不會刪除段的RTB的父參考。我爲Clear創建了一個新方法,使用以下的循環來移除所有項目。

foreach (Paragraph item in paras) 
     { 
      Page1.Blocks.Remove(item); 
     } 

這是我以前添加到RTB的段落列表。

0

你能在調試器是什麼項目的家長,當你進入循環檢查?

+0

父級是RichTextbox本身。當我清除元素時,它不會被刪除。 –

相關問題