C#的richtextbox中,输入文字时,如何使不同的字符串显示不同的颜色?

C#的richtextbox中,输入文字时,如何使不同的字符串显示不同的颜色?就像上面两张图片一样,不同字符串不同颜色。拜托了,谢谢!!!... C#的richtextbox中,输入文字时,如何使不同的字符串显示不同的颜色?

就像上面两张图片一样,不同字符串不同颜色。拜托了,谢谢!!!
展开
 我来答
greystar_cn
推荐于2016-09-06 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
C# richTextBox显示不同颜色文字
#region 日志记录、支持其他线程访问
public delegate void LogAppendDelegate(Color color, string text);
/// <summary>
/// 追加显示文本
/// </summary>
/// <param name="color">文本颜色</param>
/// <param name="text">显示文本</param>
public void LogAppend(Color color, string text)
{
richTextBoxRemote.AppendText("/n");
richTextBoxRemote.SelectionColor = color;
richTextBoxRemote.AppendText(text);
}
/// <summary>
/// 显示错误日志
/// </summary>
/// <param name="text"></param>
public void LogError(string text)
{
LogAppendDelegate la = new LogAppendDelegate(LogAppend);
richTextBoxRemote.Invoke(la, Color.Red, DateTime.Now.ToString("HH:mm:ss ") + text);
}
/// <summary>
/// 显示警告信息
/// </summary>
/// <param name="text"></param>
public void LogWarning(string text)
{
LogAppendDelegate la = new LogAppendDelegate(LogAppend);
richTextBoxRemote.Invoke(la, Color.Violet, DateTime.Now.ToString("HH:mm:ss ") + text);
}
/// <summary>
/// 显示信息
/// </summary>
/// <param name="text"></param>
public void LogMessage(string text)
{
LogAppendDelegate la = new LogAppendDelegate(LogAppend);
richTextBoxRemote.Invoke(la, Color.Black, DateTime.Now.ToString("HH:mm:ss ") + text);
}
#endregion
更多追问追答
追问
给点详细的注释好不好?就这样子很难懂好不好。。。
追答
关键代码就一行。 richTextBoxRemote.SelectionColor = color;  
,再追加文字
WS潇洒GE
2019-07-21
知道答主
回答量:1
采纳率:0%
帮助的人:722
展开全部
            #region 初始全部颜色初始化
            rtb_in.SelectionStart = 0;//初始位置
            rtb_in.SelectionLength = rtb_in.TextLength;//
            rtb_in.SelectionColor = Color.Black;//
            #endregion
            Regex reg = new Regex(@"(?i)字符串1|字符串2");//设定的需要改变颜色的固定字符串
            MatchCollection mc = reg.Matches(rtb_in.Text, 0);//获取匹配的位置和字符串信息
            foreach (Match item in mc)
            {//逐个字符串变更颜色
                rtb_in.SelectionStart = item.Index;
                rtb_in.SelectionLength = item.Value.Length;
                rtb_in.SelectionColor = Color.Blue;
            }
            rtb_in.SelectionStart = rtb_in.TextLength;//回到了文本末尾

rtb_in表示输入的RichTextBox,简单的输入文本后即时判断并且对预先设定的字符串改变颜色,以上执行放于RichTextBox的TextChanged()事件内即可。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式