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

问题描述:

我正在使用WinForms TextBox控件进行日志记录。它已被设置为多行滚动条。我正在使用以下内容插入文字:使用自动跟踪光标记录到文本框

textBox.Text += logMessage; 

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

TextBoxSelectionStart property设置为文本的长度,然后调用ScrollToCaret

+0

我尝试了这两种方法,但没有在一起。谢谢! – 2010-07-14 02:46:41

我迟到了,但是在记录时要小心这是你的文本字段的长度。你要经常修剪它的头部(但不要太频繁...)。我使用的策略是使用最大字符数限制,例如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; 
} 

双重限制的事情是有减少子串操作的发生。另外,如果您在长时间运行的程序中使用此功能,这个问题真的只是一个问题,而这些程序会不断添加到文本字段。 (是的,我也登录到一个文本文件,通常用于调试,这更适用于快速诊断...)

+0

伟大的建议,谢谢! – 2010-10-21 22:39:04