我使用WinForms TextBox控件来记录日志。它已被设置为带有滚动条的多行。我使用以下命令插入文本:
textBox.Text += logMessage;滚动条不会自动跟随最新的日志条目。有没有办法做到这一点?
发布于 2010-07-14 10:27:02
将TextBox的SelectionStart property设置为文本的长度,然后调用ScrollToCaret。
发布于 2010-10-21 20:27:34
我来晚了,但像这样记录日志时要小心的是文本字段的长度。你想要经常修剪它的头部(但不是太频繁...)。我使用的策略是使用最大字符限制,比如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;
}双重限制的存在是为了减少子串操作的发生。而且,如果你在长时间运行的程序中不断添加到文本字段中,这确实是一个问题。(是的,我也会记录到一个文本文件中,并通常将其用于调试。这更多是为了快速诊断...)
https://stackoverflow.com/questions/3242971
复制相似问题