LuJiaYi/WriteLog.cs
2024-08-17 18:00:59 +08:00

71 lines
2.3 KiB
C#

using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
internal class WriteLog
{
public delegate void LogAppendDelegate(Color color, string text);
private readonly RichTextBox richTextBox1;
private readonly LogAppendDelegate logAppendDelegate;
/// <summary>
/// 构造函数传入RichTextBox控件的实例。
/// </summary>
/// <param name="richTextBox1"></param>
public WriteLog(RichTextBox richTextBox1)
{
this.richTextBox1 = richTextBox1;
this.logAppendDelegate = new LogAppendDelegate(LogAppend);
}
/// <summary>
/// LogAppendDelegate委托指向的方法
/// </summary>
/// <param name="color"></param>
/// <param name="text"></param>
private void LogAppend(Color color, string text)
{
richTextBox1.SelectionColor = color;
richTextBox1.AppendText(text + Environment.NewLine);
}
/// <summary>
/// 追加显示文本
/// </summary>
/// <param name="text"></param>
public void LogAppendMsg(string text)
{
richTextBox1.Invoke(logAppendDelegate, Color.Black, DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + " " + text);
}
/// <summary>
/// 显示错误日志
/// </summary>
/// <param name="text"></param>
public void LogError(string text)
{
richTextBox1.Invoke(logAppendDelegate, Color.Red, DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + " " + text);
}
/// <summary>
/// 显示警告信息
/// </summary>
/// <param name="text"></param>
public void LogWarning(string text)
{
richTextBox1.Invoke(logAppendDelegate, Color.Violet, DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + " " + text);
}
/// <summary>
/// 显示信息
/// </summary>
/// <param name="text"></param>
public void LogMessage(string text)
{
richTextBox1.Invoke(logAppendDelegate, Color.Black, DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss") + " " + text);
}
}
}