我正在使用WinForms TextBox控件进行日志记录。它已被设置为带有滚动条的多行。我正在使用:
插入文本textBox.Text += logMessage;
滚动条不会自动跟随最新的日志条目。有没有办法做到这一点?
答案 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;
}
双重限制是为了减少子串操作的发生。此外,如果您在连续添加到文本字段的长时间运行的程序中使用它,这实际上只是一个问题。 (是的,我也登录到文本文件,通常用于调试。这更适合快速诊断...)