0
我使用RichTextBox
和TextBox
來顯示在幾天內收集的一些信息。所以在幾天之後它裏面有很多字符串,我得到了OutOfMemory
例外。我認爲這個錯誤是由於大量的數據。是否有一些屬性或功能允許限制RichTextBox
和TextBox
中的字符串數量?我只需要截斷處於列表開始位置的舊字符串。例如,看看下面的圖片:在RichTextBox和TextBox中截斷文本
任何想法?
我使用RichTextBox
和TextBox
來顯示在幾天內收集的一些信息。所以在幾天之後它裏面有很多字符串,我得到了OutOfMemory
例外。我認爲這個錯誤是由於大量的數據。是否有一些屬性或功能允許限制RichTextBox
和TextBox
中的字符串數量?我只需要截斷處於列表開始位置的舊字符串。例如,看看下面的圖片:在RichTextBox和TextBox中截斷文本
任何想法?
我創建了簡單的代碼,可以讓我解決這個問題。 對於TextBox
:
if (limitLines>0 && simpleTextBox.LineCount > limitLines)
{
string tempText = "";
for (int i = simpleTextBox.LineCount-limitLines; i < simpleTextBox.LineCount; i++)
{
tempText += simpleTextBox.GetLineText(i);
}
simpleTextBox.Clear();
simpleTextBox.Text = tempText;
}
simpleTextBox.AppendText(data);
爲RichTextBox
:
TextRange tr = new TextRange(richTextBox.Document.ContentEnd, richTextBox.Document.ContentEnd);
tr.Text = text + "\r\n";
tr.ApplyPropertyValue(TextElement.ForegroundProperty, solidColorBrush);
if (limitLines > 0 && richTextBox.Document.Blocks.Count > limitLines)
{
for (int i = richTextBox.Document.Blocks.Count - limitLines; i < richTextBox.Document.Blocks.Count; i++)
richTextBox.Document.Blocks.Remove(richTextBox.Document.Blocks.FirstBlock);
}
我希望它可以幫助別人!
添加項目時:'if(達到項目限制){remove(firstItem); } add(newItem);' – SimpleVar
另外,如果你的文本的長度並不接近'int.MaxValue',那麼它意味着你的OutOfMemoryException不是由過度發短信引起的。 – SimpleVar