コード例 #1
0
        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();
        }
コード例 #2
0
 void LogHelper_LogPushed(LogHelper.LogEventArgs e)
 {
     if (aaaSoft.Helpers.ThreadHelper.IsCurrentThreadMainThread())
     {
         PushLog(e);
     }
     else
     {
         this.BeginInvoke(new ThreadHelper.UnnamedDelegate(delegate()
         {
             PushLog(e);
         }));
     }
 }