C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色

所属分类: 软件编程 / C#教程 阅读数: 52
收藏 0 赞 0 分享

在利用C#开发Winform应用程序的时候,我们有可能使用RichTextBox来实现实时显示应用程序日志的功能,日志又分为:一般消息,警告提示和错误等类别。为了更好地区分不同类型的日志,我们需要使用不同的颜色来输出对应的日志,比如:一般消息为绿色,警告提示的用橙色,错误的用红色字体。

在原生Winform的RichTextBox中,是没有这种设置选项的。如需实现以上描述的功能,我们可以使用.NET的静态扩展方法来处理。实现扩展方法的类和方法本身都必须是静态的,如果你对扩展方法还不是太了解,建议先查阅相关文档资料。我这里就把实现改变RichTextBox字体颜色的扩展方法贴出:

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;
  }
 }
}

写好扩展方法后,使用就非常简单了,如下:

rtxtLog.AppendTextColorful("Your message here",Color.Green);

好了,大功告成!试一下,正常的看到的RichTextBox输出的文字是否是绿色的呢?
PS:如果是红绿色盲就得另说了,哈哈~~~

希望本文所述对大家的WinForm程序设计有所帮助。

更多精彩内容其他人还在看

C# SendInput 模拟鼠标操作的实现方法

C# SendInput 模拟鼠标操作的实现方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中 paint()与Onpaint()的区别

paint是事件onpaint方法onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的:
收藏 0 赞 0 分享

c#中GetType()与Typeof()的区别

c#中GetType()与Typeof()的区别,需要的朋友可以参考一下
收藏 0 赞 0 分享

将字符串转换成System.Drawing.Color类型的方法

将字符串转换成System.Drawing.Color类型的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# 抓取网页内容的方法

C# 抓取网页内容的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

基于C#后台调用跨域MVC服务及带Cookie验证的实现

本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下
收藏 0 赞 0 分享

使用C#获取远程图片 Form用户名与密码Authorization认证的实现

本篇文章介绍了,使用C#获取远程图片 Form用户名与密码Authorization认证的实现。需要的朋友参考下
收藏 0 赞 0 分享

Winform跨线程操作的简单方法

线程间操作无效:从不是创建控件“label1”的线程访问它
收藏 0 赞 0 分享

C# WINFORM 强制让窗体获得焦点的方法代码

C# WINFORM 强制让窗体获得焦点的方法代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中方括号[]的语法及作用介绍

C#中方括号[]可用于数组,索引、属性,更重要的是用于外部DLL类库的引用。
收藏 0 赞 0 分享
查看更多