C# Winform使用擴(kuò)展方法實(shí)現(xiàn)自定義富文本框(RichTextBox)字體顏色
在利用C#開發(fā)Winform應(yīng)用程序的時(shí)候,我們有可能使用RichTextBox來實(shí)現(xiàn)實(shí)時(shí)顯示應(yīng)用程序日志的功能,日志又分為:一般消息,警告提示和錯誤等類別。為了更好地區(qū)分不同類型的日志,我們需要使用不同的顏色來輸出對應(yīng)的日志,比如:一般消息為綠色,警告提示的用橙色,錯誤的用紅色字體。
在原生Winform的RichTextBox中,是沒有這種設(shè)置選項(xiàng)的。如需實(shí)現(xiàn)以上描述的功能,我們可以使用.NET的靜態(tài)擴(kuò)展方法來處理。實(shí)現(xiàn)擴(kuò)展方法的類和方法本身都必須是靜態(tài)的,如果你對擴(kuò)展方法還不是太了解,建議先查閱相關(guān)文檔資料。我這里就把實(shí)現(xiàn)改變RichTextBox字體顏色的擴(kuò)展方法貼出:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DocDetector.Core.Extensions
{
public static class RichTextBoxExtension
{
public static void AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine = true)
{
if (addNewLine)
{
text += Environment.NewLine;
}
rtBox.SelectionStart = rtBox.TextLength;
rtBox.SelectionLength = 0;
rtBox.SelectionColor = color;
rtBox.AppendText(text);
rtBox.SelectionColor = rtBox.ForeColor;
}
}
}
寫好擴(kuò)展方法后,使用就非常簡單了,如下:
rtxtLog.AppendTextColorful("Your message here",Color.Green);
好了,大功告成!試一下,正常的看到的RichTextBox輸出的文字是否是綠色的呢?
PS:如果是紅綠色盲就得另說了,哈哈~~~
希望本文所述對大家的WinForm程序設(shè)計(jì)有所幫助。
相關(guān)文章
c# 獲取網(wǎng)頁中指定的字符串信息的實(shí)例代碼
c# 獲取網(wǎng)頁中指定的字符串信息的實(shí)例代碼,需要的朋友可以參考一下2013-04-04
Winform控件優(yōu)化Paint事件實(shí)現(xiàn)圓角組件及提取繪制圓角的方法
這篇文章主要介紹了Winform控件優(yōu)化Paint事件實(shí)現(xiàn)圓角組件及提取繪制圓角的方法,Windows?11下所有控件已經(jīng)默認(rèn)采用圓角,其效果更好、相對有著更好的優(yōu)化,只是這是默認(rèn)的行為,無法進(jìn)一步自定義,更多詳情需要的小伙伴可以參考下面文章內(nèi)容2022-08-08
C#事件處理和委托event delegate實(shí)例簡述
這篇文章主要介紹了C#事件處理和委托event delegate的簡單實(shí)例,較為詳細(xì)的講述了C#事件處理和委托的聲明與實(shí)現(xiàn)過程,代碼簡單易懂,需要的朋友可以參考下2014-09-09
Unity UGUI的RectMask2D遮罩組件的介紹使用
這篇文章主要為大家介紹了Unity UGUI的RectMask2D遮罩組件的介紹使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

