使用自动跟踪光标记录到文本框

时间:2010-07-14 02:23:03

标签: .net winforms logging textbox

我正在使用WinForms TextBox控件进行日志记录。它已被设置为带有滚动条的多行。我正在使用:

插入文本
textBox.Text += logMessage;

滚动条不会自动跟随最新的日志条目。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

TextBox的{​​{3}}设置为文本的长度,然后调用SelectionStart property

答案 1 :(得分:1)

我迟到了,但是在这样记录时要小心的是文本字段的长度。你想经常修剪它的头部(但不是经常......)。我使用的策略是使用最大字符限制,比如5000,当文本达到限制的两倍时,将其降低到极限。

string LimitText(string Text)
{
    int textLimit = 5000;
    //let the field grow to double the limit, then chop it in half
    if (Text.Length > textLimit * 2)
    {
        Text = Text.Substring(Text.Length - textLimit, textLimit);
    }
    return Text;
}

双重限制是为了减少子串操作的发生。此外,如果您在连续添加到文本字段的长时间运行的程序中使用它,这实际上只是一个问题。 (是的,我也登录到文本文件,通常用于调试。这更适合快速诊断...)