ホームページ > バックエンド開発 > C++ > C# で RichTextBox に追加されたテキストのさまざまな部分に色を付けるにはどうすればよいですか?

C# で RichTextBox に追加されたテキストのさまざまな部分に色を付けるにはどうすればよいですか?

DDD
リリース: 2025-01-25 17:01:11
オリジナル
959 人が閲覧しました

How Can I Color Different Parts of Text Appended to a RichTextBox in C#?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート