清除数据后在RichTextBox中显示数据时出错

我的GUI上有一个RichTextBox,我有两个按钮,一个用于显示数据,另一个用于清除数据。在按钮DISPLAY上,我使用此例程将一些数据显示到RichTextBox中:


Block firstBlock = richTextBox_Console.Document.Blocks.FirstOrDefault();

richTextBox_Console.Document.Blocks.InsertBefore(firstBlock, new Paragraph(new Run("MyFirstLine= " + MyVariable + "\n" )));


string message;

for (int i = 0; i < 6; i++)

{

    message = "";

    message += "Line:" + (i + 1).ToString() + "\n";

    richTextBox_Console.Document.Blocks.InsertBefore(firstBlock, new Paragraph(new Run(message)));

}

然后单击“清除”,即可执行此操作:


richTextBox_Console.SelectAll();

richTextBox_Console.Selection.Text = "";

现在,当我再次单击“显示”按钮并在线时:


richTextBox_Console.Document.Blocks.InsertBefore(firstBlock, new Paragraph(new Run("MyFirstLine= " + MyVariable + "\n" )));

firstBlock是null太行抛出这个错误:


值不能为null。参数名称:nextSibling


知道发生了什么吗?第一次显示数据时效果很好,然后再也无法显示。


我也尝试richTextBox_Console.Document.Blocks.Clear();清除,但仍然遇到相同的错误。


慕容708150
浏览 195回答 2
2回答

拉风的咖菲猫

您可以像这样实现删除按钮的事件处理程序:richTextBox_Console.Document.Blocks.Clear();richTextBox_Console.Document.Blocks.Add(new Paragraph());

繁华开满天机

在代码之前添加此行if(!richTextBox_Console.Document.Blocks.Any())richTextBox_Console.Document.Blocks.Add(new&nbsp;Paragraph());它将检查文本中是否有任何块,如果没有,则为您添加一个段落。另外,最好将FirstOrDefault()更改为First(),在这种情况下,下次您将知道问题是您没有段落/节
打开App,查看更多内容
随时随地看视频慕课网APP