窗体用富文本框输出日志信息,不同颜色加以配合

网友投稿 639 2022-12-02

窗体用富文本框输出日志信息,不同颜色加以配合

窗体用富文本框输出日志信息,不同颜色加以配合

先上图:

、昨天说道,用委托将日志信息同时写到日志文件,输出到窗体的富文本框(《​​委托委托,谁委托谁?​​》)。但是,那个富文本框绿莹莹的,无论是正常提示还是错误提示,都一个颜色,不好区分。

一般做法,都应该是正确绿色,错误红色。咋整?

代码

_rtb.SelectionStart = _rtb.TextLength;_rtb.SelectionLength = 0;_rtb.SelectionColor = Color.Red;//红色_rtb.AppendText(mess + "\r\n");_rtb.SelectionColor = DefaultColor;

完整代码:

public class ShowInfo{ Form form; RichTextBox _rtb; readonly int _rowsLimit; readonly Color DefaultColor = Color.Lime;//蓝绿色 public ShowInfo(Form form,RichTextBox rtb,int rowsLimit = 20) { this.form = form; this._rtb = rtb; this._rtb.BackColor = SystemColors.ControlText;//背景色为黑色 this._rtb.ForeColor = DefaultColor;//前景色即文字颜色为蓝绿色 this._rowsLimit = rowsLimit; getTitle(); } public void ShowText(string mess) { if (_rtb.InvokeRequired) {// 当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它 Action dlg = (x) => { showText((object)mess); }; _rtb.Invoke(dlg, mess); } else { showText((object)mess); } } long _rows = 0; void showText(object objmess) { string mess = objmess.ToString(); if (_rows < _rowsLimit) { _rows++; } else { _rows = 0; _rtb.Clear(); _rtb.ClearUndo(); _rtb.Text = ""; } if (mess.IndexOf("错误") != -1) { _rtb.SelectionStart = _rtb.TextLength; _rtb.SelectionLength = 0; _rtb.SelectionColor = Color.Red;//红色 _rtb.AppendText(mess + "\r\n"); _rtb.SelectionColor = DefaultColor; } else { _rtb.AppendText(mess+ "\r\n"); } //_rtb.SelectionStart = _rtb.Text.Length; //_rtb.ScrollToCaret();

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:架构师学习笔记12--嵌入式系统设计
下一篇:架构师学习笔记20--数学与经济管理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~