私は着信チャット(インスタントメッセンジャーに似ています)を読み込んでフォーマットし、それをrichtextboxに挿入するアプリを書いています。プログラムの実行時間を長くしておくと、メモリ不足エラーが発生します。私のコードを見た後、私はrichtextboxを決して切り取っていないので、これがだと思います。私は、表示されているテキストを消したくないので、clear()を呼びたくありません。私はおそらく私は200行のような何かの最大サイズでリストを保持する必要が考えていた。このリストは最新のチャットを保持します。チャットログが大きくなった場合は、最後の200行を消去して再挿入します。しかし、私はこの考えを実装する前に誰かがより良い解決策を知っているかどうか尋ねるでしょう。何かご意見は?c#richtextbox outofmemory
2
A
答えて
3
私はおそらく次の操作を行います:
- キャッチ
RichTextBox.TextChanged
イベントハンドラで - 、行数(
RichTextBox.Lines.Length
)をチェック - これはあなたの最大値を超えた場合は、最初のを削除します。
幸運!
+0
ありがとう、これは完全に動作します – poco
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();
}
}
あなたはトリム(呼び出していることを確認してくださいそれ以外の場合は、テキストの最初の行にはなりそれが動作しない原因となる空白スペース。
関連する問題
- 1. C#richtextboxフォントのプロパティ
- 2. syncカスタムコントロールとrichtextbox C#
- 3. C#RichTextBoxテキストブロックの選択
- 4. RichTextBoxのC#でのクリアテキスト
- 5. C#WFA。 richTextBoxの合計を別のrichTextBoxに送る
- 6. OutOfMemory Exception C#スレッドを扱うとき
- 7. PDFBOXのOutOfMemory
- 8. OutOfMemory Java
- 9. Eclipse OutOfMemory
- 10. richTextBox、bindable richTextBoxによるユーザーコントロール
- 11. RichTextBox
- 12. RichTextBoxをC#でダブルバッファリングする方法は?
- 13. C#のRichTextBoxをSliderコントロールにバインドする
- 14. RichTextBox C#テキストメソッドを描画しますか?
- 15. RichTextBox C#WinFormsでの自動スクロール
- 16. C#クロスプラットフォームRichTextBox URLまたは代替ソリューション
- 17. OutOfMemory with Solr4
- 18. Androidゲームコード - OutOfMemory!
- 19. Android outofmemory error allocation
- 20. OutOfMemory Exception on Android
- 21. Android Outofmemory drawable
- 22. HibernateがOutOfMemoryを
- 23. Scala Infinite Iterator OutOfMemory
- 24. outofmemory exception in android
- 25. Android 6.0.1のOutOfMemoryエラーデバイス
- 26. JPA Hibernate DBCP Tomcat OutOfMemory
- 27. Java 8 String outofmemoryエラー
- 28. RichTextBoxハイパーリンク
- 29. richtextboxフォーマット
- 30. JavaのOutOfMemory例外クリップボード
MaxLengthプロパティは、おそらくコントロールを文字列を管理するように設定するのに最も近いでしょう。しかし、それはおそらく貧しい選択です。だから、基本的には、それを自分で管理するのが最善の方法です。 – doobop
本当ですか?あなただけのチャットのためにメモリが不足していますか?あなたのユーザーはメガバイトでチャットを送信していますか? – Mehrdad
これは私が最初に思ったことであり、すぐには起こらない、あなたがどれくらいの記憶を持っているかによって決まります。私にとっては、アプリは数日間オープンしなければならなかったが、1ギガのメモリしか持たない友人の1人は、メモリ不足で8時間以内にクラッシュすると言っていた。私は変更を行ったので、正常に動作しているようです – poco