当文本附加到richTextbox1并且我通过单击表单右上角的红色x关闭程序时,会发生这种情况。
所以我想我需要在结束事件中处理这个问题。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
这是我正在更新richTextBox(rtbPaths)
的地方RichTextBoxExtensions.AppendText(rtbPaths, "Downloading: ", Color.Red);
RichTextBoxExtensions.AppendText(rtbPaths, downloader.CurrentFile.Path, Color.Green);
rtbPaths.AppendText(Environment.NewLine);
这是RichTextBoxExtensions类
public class RichTextBoxExtensions
{
public static void AppendText(RichTextBox box, string text, Color color)
{
box.SelectionStart = box.TextLength;
box.SelectionLength = 0;
box.SelectionColor = color;
box.AppendText(text);
box.SelectionColor = box.ForeColor;
}
public static void UpdateText(RichTextBox box, string find, string replace, Color? color)
{
box.SelectionStart = box.Find(find, RichTextBoxFinds.Reverse);
box.SelectionLength = find.Length;
box.SelectionColor = color ?? box.SelectionColor;
box.SelectedText = replace;
}
}
TextChanged事件
private void rtbPaths_TextChanged(object sender, EventArgs e)
{
// set the current caret position to the end
rtbPaths.SelectionStart = rtbPaths.Text.Length;
// scroll it automatically
rtbPaths.ScrollToCaret();
}
异常消息
消息=无法访问已处置的对象。 对象名称:'RichTextBox'。 对象名=的RichTextBox 来源= System.Windows.Forms的 堆栈跟踪: 在System.Windows.Forms.Control.CreateHandle() 在System.Windows.Forms.TextBoxBase.CreateHandle() 在System.Windows.Forms.Control.get_Handle() 在System.Windows.Forms.RichTextBox.get_TextLength() 在Form1.cs中的DownloaderPro.Form1.RichTextBoxExtensions.AppendText(RichTextBox框,字符串文本,颜色):第249行 在Form1.cs中的DownloaderPro.Form1.downloader_FileDownloadStarted(Object sender,EventArgs e):第186行
答案 0 :(得分:0)
您好,您可以将代码保持在关闭事件中,这将阻止处置
e.Cancel = true;
如果它不起作用,请告诉我