C#的richtextbox怎么实现滚动日志

我想用richtextbox做个实时日志的显示窗口

日志会有一个方法来加入

日志的量非常大,如何实现党richtextbox中显示一定行数后,自动丢弃早先加入的行(头部),这个过程最好平滑过多,我要实现的是类似flashfxp 右下的日志窗口中的那种效果

共有1个回答
  • gallAlefs - 1年前

    简单点的,可以这样:

    private string demoText = "---[白天非诚勿扰,晚上让子弹飞,结果有了赵氏孤儿!]"; 
    private void GetContent(int line)
            {
                //StringBuilder sb = new StringBuilder();
                string s = string.Empty;
                for (int i = 1; i <= line; i++)
                {
                    s = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "-" + "第" + i.ToString() + "次日记" + demoText;
                    rtbMain.AppendText(s + System.Environment.NewLine);
                }
    
            }
    
     private void rtbMain_TextChanged(object sender, EventArgs e)
            {
                if (rtbMain.Lines.Length > 20)
                {
                    rtbMain.Text = rtbMain.Text.Substring(rtbMain.Lines[0].Length + 1);
                }
               
            }
    具体可以参考这里:

    http://www.codeproject.com/KB/cs/scrollingTextbox.aspx