0

我正在将数据写入日志文件,并且需要在我的 WinForms UI 中显示该数据。我最初的想法是使用这样的多行文本框:

private void UpdateUITextbox(string text)
{
    textBoxStatus.AppendText(text + Environment.NewLine);
}

我不会在我的日志文件中写入大量文本,但随着时间的推移,它会加起来,我最终可能会超过多行文本框的默认最大长度。为了防止这种情况发生,我唯一能想到的就是挂接到 OnKeyPress 事件处理程序中,并在向其添加内容之前检查文本框的长度,并在必要时删除旧文本以腾出空间较新的文本。但这似乎肯定会对性能产生影响。有人请告诉我有更好的方法吗?

4

3 回答 3

2

Winforms TextBox 的最大长度为 2GB

在您担心内存问题之前,您将不得不担心可用性问题——如果日志太长,您的用户将无法有效地使用它。

于 2012-09-18T20:41:39.327 回答
0

我们使用AvalonEdit显示我们的日志。它可以很好地扩展到数十万行。

于 2012-09-18T20:42:15.703 回答
0

为什么不使用列表框而不是多行文本框?
对于日志,最好在日志中添加更多信息,同时节省时间等信息。
并在加载时读取具有您认为最近的范围内的日期戳的每一行。一次加载所有日志文件是不明智的。只加载新的。
如果您需要查看较旧的日志,您仍然可以使用时间/日期戳解决方案进行管理。

于 2012-09-18T21:23:32.977 回答