private void PushLog(LogHelper.LogEventArgs e) { int StartIndex = rtbLog.TextLength; rtbLog.AppendText(e.LogText); rtbLog.AppendText(Environment.NewLine); int Length = rtbLog.TextLength - StartIndex; rtbLog.Select(StartIndex, Length); rtbLog.SelectionColor = e.LogColor; //如果日志行数超过最大值 if (rtbLog.Lines.Length > LogWindowsMaxLinesCount) { for (int i = 0; i <= 50; i++) { Int32 clIndex = rtbLog.Text.IndexOf("\n"); if (clIndex < 0) { break; } rtbLog.Select(0, clIndex + 1); rtbLog.SelectedText = "\0"; } } rtbLog.Select(rtbLog.TextLength - 1, 1); rtbLog.ScrollToCaret(); }
void LogHelper_LogPushed(LogHelper.LogEventArgs e) { if (aaaSoft.Helpers.ThreadHelper.IsCurrentThreadMainThread()) { PushLog(e); } else { this.BeginInvoke(new ThreadHelper.UnnamedDelegate(delegate() { PushLog(e); })); } }