0.背景

定义了一个richTextBox,然后不断地向里面输入文本数据,如果一秒钟点击一次,那么文本框不会崩溃,如果时间再快点,则会引发整个程序崩溃。

报错如下:


System.NullReferenceException 类型的未经处理的异常在System.Windows.Forms.dll中发生。其他信息:未将对象对象引用为实例。“

后面更为详细的报错指向RichTextBox了

问题的原因是数据量太多了,RichTextBox存不下溢出了。

1.解决办法

RichTextBox一般是用了显示数据,也不用存储,所以完全可以显示过的一部分数据自动清除就行。

参考代码如下:

private void showRichText(string msg)
{
   if(rtxt.Text.Length+msg.Length>10000 || rtxt.Lines.Length>100)
   {
        rtxt.Clear();
    }
    rtxt.AppendText(msg+"\n");
}

这里简单写了个函数,其中rtxt是标签名字,代码里面有两个判断,文本字符长度大于10000或者文本行数大于100就自动清空文本内容,防止溢出。

这样就不会出现溢出问题了。

分类: .Net/C#