C# の RichTextBox のテキスト セグメントに色を付ける
RichTextBox の機能は、文字列のさまざまな部分を選択的に色付けし、視覚的な魅力と明瞭さを追加することで強化できます。この質問は、文字列をセグメントに分割し、RichTextBox に追加する前に各セグメントに一意の色を割り当てることでこれを達成することを目的としています。
拡張テキスト追加のための拡張メソッド
このタスクを容易にするために、AppendText
という名前の拡張メソッドが導入されました。追加の色パラメータを受け入れ、開発者が追加のテキストの色を指定できるようにします。次のコードは、このメソッドの実装を示しています:
<code class="language-csharp">public static class RichTextBoxExtensions { public static void AppendText(this RichTextBox box, string text, Color color) { box.SelectionStart = box.TextLength; box.SelectionLength = 0; box.SelectionColor = color; box.AppendText(text); box.SelectionColor = box.ForeColor; //重置颜色 } }</code>
実際の応用
この拡張機能を利用するために、開発者は各セグメントに必要な色を指定し、そのセグメントを RichTextBox に追加できます。たとえば、必要な文字列が「[9:23pm]
User: my message here.」、タイムスタンプの色が赤、「User」が緑、メッセージの色が青の場合、次のコードは使用法を示します。
<code class="language-csharp">var userid = "USER0001"; var message = "Access denied"; var box = new RichTextBox { Dock = DockStyle.Fill, Font = new Font("Courier New", 10) }; box.AppendText("[" + DateTime.Now.ToShortTimeString() + "]", Color.Red); box.AppendText(" "); box.AppendText(userid, Color.Green); box.AppendText(": "); box.AppendText(message, Color.Blue); box.AppendText(Environment.NewLine); new Form { Controls = { box } }.ShowDialog();</code>
ちらつきの問題を解決する
提供された回答で述べたように、大量のメッセージを出力すると、RichTextBox がちらつく可能性があります。これを軽減するには、RichTextBox のパフォーマンスを最適化する方法について、回答で説明されている C# コーナーの記事を参照してください。以上がC# で RichTextBox 内のテキスト セグメントを色分けするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。