我已经编写了一个读取传入聊天(有点像即时通讯工具)的应用程序,对其进行格式化并将其插入到richtextbox中。如果你让程序运行时间足够长,你会得到一个内存不足的错误。在看我的代码后,我认为这是因为我从不修剪RichTextBox。我遇到的问题是我不想调用clear(),因为我不希望可见文本消失。我在想也许我应该保留一个像200行一样大小的列表。此列表将保留最近的聊天。如果聊天记录变大,请呼叫清除并重新插入最后200行。然而,在我实施这个想法之前,我会问有没有人知道更好的解决方案。有什么想法吗?c#richtextbox outofmemory
2
A
回答
3
我可能会做到以下几点:
- 赶上
RichTextBox.TextChanged
事件 - 在处理程序中,检查线(
RichTextBox.Lines.Length
) - 数量若超过您最大,删除第一。
祝你好运!
0
虽然我接受的答案同意,我想提供一个代码示例显示出一些澄清:
private void rtbChatWindow_TextChanged(object sender, EventArgs e)
{
int maxLines = 200;
if (rtbChatWindow.Lines.Length > maxLines)
{
string s = rtbChatWindow.Lines.First();
rtbChatWindow.Text = rtbChatWindow.Text.Remove(0, s.Length).Trim();
}
}
确保您在调用TRIM()删除文本,否则文本的第一行成为导致这不起作用的空白空间。
相关问题
- 1. C#.NET RichTextBox GetCharOffsetFromPosition?
- 2. C#RichTextBox滞后
- 3. richtextbox的C#滚动
- 4. C#,RichTextBox处理行
- 5. C#:拖放(RichTextBox中)
- 6. OutOfMemory异常
- 7. Eclipse OutOfMemory
- 8. UIL OutOfMemory
- 9. Android OutOfMemory
- 10. c#RichTextBox标签大小
- 11. C#的HTML RichTextBox的WPF
- 12. C#WPF RichTextBox的选择
- 13. C#richtextbox字体属性
- 14. 左右对齐richtextbox c#
- 15. 获取从RichTextBox的在C#
- 16. 在c中打印richtextbox#
- 17. c#wpf richtextbox运行mouseup
- 18. C#RichTextBox选择问题
- 19. C#中的TextRange和RichTextBox WPF
- 20. richtextbox的C#混合字体。
- 21. 在C中的单行RichTextBox#
- 22. C#/ UWP OutOfMemory更改ListView到水平时
- 23. C#OutOfMemory例外阅读投递响应
- 24. OutOfMemory异常C#当使用线程
- 25. 使用LINQ C#抛出OutOfMemory例外
- 26. Neo4j OutOfMemory问题
- 27. Grails Tomcat OutofMemory错误
- 28. android nativeDecodeAsset outofmemory
- 29. OutOfMemory例外
- 30. .NET OutOfMemory异常
MaxLength属性可能是最接近设置任何东西来使控件管理字符串。但是,这可能是一个糟糕的选择。所以,基本上,自己管理它看起来是最好的方式。 – doobop 2011-01-10 01:30:31
真的吗?你只是为了聊天而耗尽内存?你的用户以兆字节发送聊天吗?! – Mehrdad 2011-01-10 08:24:03