翻译窗体用富文本框输出日志信息,不同颜色加以配合
进颂阅读量 17
先上图:

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

一般做法,都应该是正确绿色,错误红色。咋整?
上代码:
prism language-bash
_rtb.SelectionStart = _rtb.TextLength;
_rtb.SelectionLength = 0;
_rtb.SelectionColor = Color.Red;//红色
_rtb.AppendText(mess + "\r\n");
_rtb.SelectionColor = DefaultColor;
完整代码:
prism language-csharp
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<string> 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();
}
}
===========================
【来源: CSDN】
【作者: 左直拳】
【原文链接】 https://leftfist.blog.csdn.net/article/details/81346577
声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。
标签: 信息通过窗口输出日志
0/300
全部评论0