0.背景
定义了一个richTextBox,然后不断地向里面输入文本数据,如果一秒钟点击一次,那么文本框不会崩溃,如果时间再快点,则会引发整个程序崩溃。
报错如下:
”
System.NullReferenceException 类型的未经处理的异常在System.Windows.Forms.dll中发生。其他信息:未将对象对象引用为实例。“
后面更为详细的报错指向RichTextBox了
![](http://kongkui.oss-cn-qingdao.aliyuncs.com/images/2024051301_3s2fr2.png)
问题的原因是数据量太多了,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就自动清空文本内容,防止溢出。
这样就不会出现溢出问题了。