前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C#Winform使用扩展方法自定义富文本框(RichTextBox)字体颜色

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

作者头像
Rector
发布于 2018-02-01 08:21:14
发布于 2018-02-01 08:21:14
3.1K00
代码可运行
举报
文章被收录于专栏:.NET开发者社区.NET开发者社区
运行总次数:0
代码可运行

在利用C#开发Winform应用程序的时候,我们有可能使用RichTextBox来实现实时显示应用程序日志的功能,日志又分为:一般消息,警告提示 和错误等类别。为了更好地区分不同类型的日志,我们需要使用不同的颜色来输出对应的日志,比如:一般消息为绿色,警告提示的用橙色,错误的用红色字体。 在原生Winform的RichTextBox中,是没有这种设置选项的。如需实现以上描述的功能,我们可以使用.NET的静态扩展方法来处理。实现扩展 方法的类和方法本身都必须是静态的,如果你对扩展方法还不是太了解,建议先查阅相关文档资料。我这里就把实现改变RichTextBox字体颜色的扩展方 法贴出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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;
    }
  }
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rtxtLog.AppendTextColorful("Your message here",Color.Green);

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

本文同步发布于图享网:C#Winform使用扩展方法自定义富文本框(RichTextBox)字体颜色

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot中Spring-cache与Redis整合【面试+工作】
也是在整合redis的时候偶然间发现spring-cache的。这也是一个不错的框架,与spring的事务使用类似,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作。如果这些注解不满足项目的需求,我们也可以参考spring-cache的实现思想,使用AOP代理+缓存操作来管理缓存的使用。 在这个例子中我使用的是redis,当然,因为spring-cache的存在,我们可以整合多样的缓存技术,例如Ecache、Mamercache等。 下面来看springcache的具体操作吧! 附上官方的文档: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html
Java帮帮
2018/09/29
2.3K0
SpringBoot中Spring-cache与Redis整合【面试+工作】
高并发场景下的缓存穿透、失效和雪崩问题及解决方案
在互联网应用中,高并发场景下的缓存穿透、失效和雪崩问题是常见的挑战。缓存作为提高系统性能和减轻数据库压力的重要手段,但如果不合理地使用和管理,就可能导致缓存穿透、失效和雪崩等问题。本文将详细介绍高并发场景下的缓存穿透、失效和雪崩问题,并给出相应的解决方案和代码示例。
疯狂的KK
2023/09/04
3960
高并发场景下的缓存穿透、失效和雪崩问题及解决方案
Redis系列 | 缓存穿透、击穿、雪崩、预热、更新、降级
Redis是高性能的分布式内存数据库,对于内存数据库经常会出现下面几种情况,也经常会出现在Redis面试题中:缓存穿透、缓存击穿、缓存雪崩、缓存预热、缓存更新、缓存降级。本篇分别介绍这些概念以及对应的解决方案。
王知无-import_bigdata
2020/07/22
12.3K0
Redis系列 | 缓存穿透、击穿、雪崩、预热、更新、降级
Redis缓存的主要异常及解决方案
Redis 是当前最流行的 NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能。当然在使用过程中,也会出现一些异常情景,导致Redis失去缓存作用。
程序猿川子
2023/02/01
5180
【Redis实战】面试热点:缓存穿透、缓存击穿、缓存雪崩的区别和解决方案
  先读cache,如果数据命中则返回;如果数据未命中则读db;将db中读取出来的数据入缓存。
程序员云帆哥
2022/05/12
3270
【Redis实战】面试热点:缓存穿透、缓存击穿、缓存雪崩的区别和解决方案
缓存策略优化
缓存介绍 这里是列表文本在高并发多用户的系统中常常会使用缓存来提升读写性能 这里是列表文本常见的如memcached, redis, 内存缓存等 现象 这里是列表文本某产品上线后不久,服务报警,看日志发现有sql的timeout报错,具体表现为: 这里是列表文本页面许多逻辑超时、出错 这里是列表文本db所在机器load较高,dba经查为大量相同的sql在反复执行 定位问题 这里是列表文本取应用服务的jstack stack dump文件用stackAnalysis工具分析,发
冷冷
2018/02/08
1K0
spring的缓存(cache)-本地
注:本文篇幅有点长,所以建议各位下载源码学习。(如需要请收藏!转载请声明来源,谢谢!)
逍遥壮士
2020/09/18
2.8K0
spring的缓存(cache)-本地
SpringBoot入门建站全系列(十三)本地缓存的使用(Ehcache和caffeine的使用)
本地缓存,就是使用应用内使用本地内存将数据暂缓存储,一般数据库的查询如果不怎么改动,可以用本地缓存暂存。
品茗IT
2019/08/15
1.2K0
缓存解决方案SpringDataRedis
SpringDataRedis 属于Spring Data 家族一员,用于对redis的操作进行封装的框架 ,Spring Data : Spring 的一个子项目.Spring 官方提供一套数据层综合解决方案,用 于简化数据库访问,支持NoSQL和关系数据库存储。包括Spring Data JPA 、Spring Data Redis 、SpringDataSolr 、SpringDataElasticsearch 、Spring DataMongodb 等 框架。
全栈程序员站长
2021/07/13
3620
Redis缓存雪崩、缓存穿透、缓存击穿解决方案详解
像电商项目,一般采取将不同分类的商品,缓存不同周期。在同一分类中的商品,加上一个随机因子。尽可能分散缓存过期时间,而且,热门类目的商品缓存时间长一些,冷门类目的商品缓存时间短一些,也能节省缓存服务的资源。
JavaEdge
2022/11/30
1.2K0
Redis缓存雪崩、缓存穿透、缓存击穿解决方案详解
看完这篇缓存穿透的文章,保证你能和面试官互扯!!!
爱撒谎的男孩
2023/08/25
1440
Spring注解式缓存
  1.2 配置自定义Key生成器CacheKeyGenerator           缓存的Java对象一定要重写hashCode和eqauls
用户10196776
2022/11/22
6050
Spring注解式缓存
系统性能提升利刃 | 缓存技术使用的实践与思考
按照现在流行的互联网分层架构模型,最简单的架构当属Web响应层+DB存储层的架构。从最开始的单机混合部署Web和DB,到后来将二者拆分到不同物理机以避免共享机器硬件带来的性能瓶颈,再随着流量的增长,Web应用变为集群部署模式,而DB则衍生出主从机来保证高可用,同时便于实现读写分离。这一连串系统架构的升级,本质上是为了追求更高的性能,达到更低的延时。
猿天地
2019/08/23
4690
系统性能提升利刃 | 缓存技术使用的实践与思考
面对缓存,出现这些问题你要如何思考!
缓存可以说是无处不在,比如 PC 电脑中的内存、CPU 中的二级缓存、HTTP 协议中的缓存控制、CDN 加速技术都是使用了缓存的思想来解决性能问题。 Java架构进阶群:554355695 缓存是用
Java架构
2018/05/04
1.3K0
面对缓存,出现这些问题你要如何思考!
SpringBoot入门建站全系列(十三)本地缓存的使用(Ehcache和caffeine的使用)
本地缓存,就是使用应用内使用本地内存将数据暂缓存储,一般数据库的查询如果不怎么改动,可以用本地缓存暂存。
品茗IT
2019/09/12
6870
当@Transactional遇到@CacheEvict,会不会先清缓存呢?
如上图所示,当@Transactional 遇到@CacheEvict,是先清缓存后更新数据库,还是先更新数据库后更新缓存呢? 大家都知道,也清缓存后更新数据库,会不定时出现脏数据的哦
烟雨平生
2023/03/07
1.3K0
当@Transactional遇到@CacheEvict,会不会先清缓存呢?
【面试官】你可以说一下缓存击穿、穿透、雪崩的区别和解决方法吗?
假如缓存的数据没有,后台则会一直请求数据库,对数据库造成压力,如果是请求量大或者恶意请求则会导致数据库崩溃,我们一般称为缓存穿透、缓存击穿、缓存雪崩。
范蠡
2020/12/15
1.4K0
【面试官】你可以说一下缓存击穿、穿透、雪崩的区别和解决方法吗?
如何提高memcache的缓存命中率
mysql缓存机制就是缓存sql 文本及缓存结果,用KV形式保存再服务器内存中,如果运行相同的sql,服务器直接从缓存中去获取结果,不需要在再去解析、优化、执行sql。如果这个表修改了,那么使用这个表中的所有缓存将不再有效,查询缓存值得相关条目将被清空。表中得任何改变是值表中任何数据或者是结构的改变,包括insert,update,delete,truncate,alter table,drop table或者是drop database 包括那些映射到改变了的表的使用merge表的查询,显然,者对于频繁更新的表,查询缓存不合适,对于一些不变的数据且有大量相同sql查询的表,查询缓存会节省很大的性能。
码农编程进阶笔记
2021/07/20
6380
推荐阅读
相关推荐
SpringBoot中Spring-cache与Redis整合【面试+工作】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档