【发布时间】:2014-08-24 16:07:08
【问题描述】:
我想向 RichTextBox 添加行,这将根据行是否有“错误”字样而具有不同的颜色。
所以。
我有应该在 RichTextBox 中显示的文本文件(大小>10 Mb)。我有一个 ValidationMethod,它在未验证的文本文件的每一行末尾添加一个单词“错误”。这工作正常。
我有一个调用 ValidationMethod 的 BackgroundWorker.DoWork 处理程序:
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
e.Result = ValidationMethod(fileName);
}
而 ValidationMethod 是:
void ValidationMethod(string fileName)
{
//It is really huge file. So a program can be hung
if (str.Contains("Error"))
{
richTextBox1.SelectionColor = Color.Red;
richTextBox1.AppendText(str + "\n");
}
else
{
richTextBox1.AppendText(str + "\n");
}
btn_save.Visible = true;
}
有时它工作正常,有时我的程序挂起。我想通过未验证的 RichTextBox 的红色行突出显示。如果我通过 UI 线程更新我的富文本框,那么程序就会停止。所以我决定通过 BackgroundWorker 更新我的 RichTextBox。
BackgroundWorker如何给RichTextBox添加字符串?并且 btn_save 没有显示。为什么?
【问题讨论】:
标签: multithreading winforms user-interface richtextbox backgroundworker