Winforms显示大文件的内容

时间:2009-12-18 09:41:04

标签: .net winforms performance

使用Winforms向用户显示大文本文件内容的最佳方法是什么?现在我已经尝试了多行文本框,但对于2MB文件来说这个速度相当慢。

3 个答案:

答案 0 :(得分:1)

嗯。有趣。是时候进行实验了。

我用一个按钮将一个50k行文本文件从我的硬盘驱动器加载到List中,从而制作了一个.Net winforms项目。使用StreamReader,这部分几乎是即时的。

在我的标准run-of-the-microsoft-mill多行文本框中加载行很快就发生了:

var lines = new List<string>();
using (var sr = new StreamReader(@"C:\temp\lotsoftext.txt"))
{
    while (!sr.EndOfStream) lines.Add(sr.ReadLine());
}
TextBox.Lines = lines.ToArray();

我没有时间,但最多花了一秒钟。

当我尝试在富文本框中执行相同操作时,系统冻结了我。它确实将文本放在了RichTextbox中,但是在等待它的时候我留了胡子。我没有想到的是,所有这些时间都花在解析标记的输入上,因此使用纯文本框作为纯文本是最好的。

答案 1 :(得分:0)

取决于什么类型的数据。

对于纯文本文件,你很难找到比TextBox或RichtTextBox更好的东西。

答案 2 :(得分:0)

听起来你可能想考虑编写自己的自定义控件来执行此操作 - 然后你可以“优化”它变慢的一些原因(例如,你可能知道行应该永远不会换行,这将会简化用于计算滚动条比例的算法)