Es passiert, während Text an richTextbox1 angehängt wird und ich schließe das Programm, indem ich auf das rote x in der oberen rechten Ecke des Formulars klicke.Wie soll ich umgehen Kann beim Beenden des Programms nicht auf eine entsorgte Objektausnahme zugreifen?
Also ich denke, ich muss dies im Formular schließen Veranstaltung behandeln.
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
Dies ist, wo ich bin RichTextBox (rtbPaths) ist
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-Ereignis
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();
}
Die Ausnahmemeldung die RichTextBoxExtensions Klasse Diese
RichTextBoxExtensions.AppendText(rtbPaths, "Downloading: ", Color.Red);
RichTextBoxExtensions.AppendText(rtbPaths, downloader.CurrentFile.Path, Color.Green);
rtbPaths.AppendText(Environment.NewLine);
Aktualisierung
Meldung = Zugriff auf ein entsorgtes Objekt nicht möglich. Objektname: 'RichTextBox'. ObjektName = RichTextBox Source = System.Windows.Forms Stacktrace: bei System.Windows.Forms.Control.CreateHandle() bei System.Windows.Forms.TextBoxBase.CreateHandle() bei System.Windows.Forms.Control .get_Handle() bei System.Windows.Forms.RichTextBox.get_TextLength() bei DownloaderPro.Form1.RichTextBoxExtensions.AppendText (RichTextBox Box, String Text, Farbe Farbe) in Form1.cs: Linie 249 bei DownloaderPro.Form1.downloader_FileDownloadStarted (Object sender, EventArgs e) in Form1.cs: Linie 186
Ideal funktioniert, sollten Sie nicht damit umgehen müssen - ich meine, ist der Code nicht richtig konstruiert irgendwo. Zweitens haben Sie keinen relevanten Code angezeigt. Der Code, den Sie anzeigen, hat keine Bedeutung für das Textfeld. Drittens: Wenn Sie die App trotzdem schließen, können Sie alle Fehler ignorieren, die Sie mit dem Ereignis "application.threadexception" beheben können, das zur Behandlung unerwarteter Fehler in den App-Eintrag geschaltet werden sollte. –
Es ist meist ein Threading-Fehler, das Herunterladen großer Dateien ist etwas, was Sie mit einem Thread machen würden. Stellen Sie sicher, dass der Download gestoppt oder beendet wird, bevor Sie den Benutzer das Fenster schließen lassen. Wenn Sie die Bibliothek von jemand anderem verwenden, hilft das nicht viel, diesen Code richtig zu machen. Oder für uns, um dir zu helfen. –