首頁 > 後端開發 > 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#?

在C#中為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>
登入後複製

使用方法:

定義擴展方法後,使用方法很簡單。只需按照以下代碼所示使用即可:

<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# Corner文章以了解可能的解決方案。

以上是如何在 C# 中為附加到 RichTextBox 的文字的不同部分著色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板