RichTextBox のさまざまな部分に色を付け、C# でテキストを追加します
質問:
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>
使用法:
拡張メソッドを定義した後の使用は非常に簡単です。次のコードに示すように使用するだけです:
<code class="language-csharp">string userid = "USER0001"; string message = "访问被拒绝"; RichTextBox 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); Form form = new Form { Controls = { box } }; form.ShowDialog();</code>
注:
過剰なテキスト出力により、RichTextBox がちらつく可能性があることに注意してください。考えられる解決策については、回答に記載されている C# コーナーの記事を参照してください。
以上がC# で RichTextBox に追加されたテキストのさまざまな部分に色を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。