截断RichTextBox和TextBox中的文本

时间:2013-07-09 03:20:20

标签: c# wpf exception

我正在使用RichTextBoxTextBox来显示几天内收集的一些信息。所以在几天之后里面有很多字符串,我得到OutOfMemory例外。我认为这个错误是由于大量数据而发生的。是否有一些属性或函数可以限制RichTextBoxTextBox内的字符串数量?我只需要截断列表开头的旧字符串。例如,看看下面的图片:

enter image description here

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我创建了简单的代码,可以解决这个问题。 对于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);
        }

我希望对其他人有帮助!