poco poco - 1 month ago 28
C# Question

c# richtextbox outofmemory

I have written an app that reads incoming chat(somewhat like an instant messenger), formats it and inserts it into a richtextbox. If you leave the program running long enough you will get an out of memory error. After looking at my code i think this is because i am never trimming the richtextbox. The problem that i'm running into is i don't want to call clear() because i don't want the visible text to disappear. I was thinking maybe i should keep a List with a max size of somthing like 200 lines. This List would keep the most recent chat. If the chat log grows to big, call clear and reinsert the last 200 lines. However, before i implement this thought i would ask if anyone knows of a better solution. Any thoughts?

Answer

I would probably do the following:

  1. Catch the RichTextBox.TextChanged event
  2. In the handler, check the number of lines (RichTextBox.Lines.Length)
  3. If this exceeds your maximum, remove the first.

Good luck!