我已經編寫了一個讀取傳入聊天(有點像即時通訊工具)的應用程序,對其進行格式化並將其插入到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. WinForms中的OutOfMemory異常RichTextBox
- 2. C#.NET RichTextBox GetCharOffsetFromPosition?
- 3. C#RichTextBox Find()Bug?
- 4. C#RichTextBox滯後
- 5. 捕捉OutOfMemory異常C#
- 6. RichTextBox的C#車展
- 7. richtextbox的C#滾動
- 8. C#:拖放(RichTextBox中)
- 9. C#RichTextBox的突出
- 10. C#,RichTextBox處理行
- 11. C#打印(RichTextBox中)
- 12. BitmapFactory OutOfMemory
- 13. OutOfMemory異常
- 14. Javafx outofmemory錯誤
- 15. OutofMemory ImageAdapter
- 16. Android OutOfMemory
- 17. UIL OutOfMemory
- 18. libgit2sharp.Patch outofmemory
- 19. Eclipse OutOfMemory
- 20. C#WPF RichTextBox的選擇
- 21. 獲取從RichTextBox的在C#
- 22. C#中的TextRange和RichTextBox WPF
- 23. c#RichTextBox標籤大小
- 24. C#的HTML RichTextBox的WPF
- 25. Richtextbox追加查詢C#
- 26. richtextbox的C#混合字體。
- 27. c#richtextbox只顯示一行
- 28. C#RichTextBox選擇問題
- 29. C#RichTextBox彩色文本
- 30. 左右對齊richtextbox c#
MaxLength屬性可能是最接近設置任何東西來使控件管理字符串。但是,這可能是一個糟糕的選擇。所以,基本上,自己管理它看起來是最好的方式。 – doobop 2011-01-10 01:30:31
真的嗎?你只是爲了聊天而耗盡內存?你的用戶以兆字節發送聊天嗎?! – Mehrdad 2011-01-10 08:24:03