我有代码将TexBox的文本设置为
textBox1.Text = s;
其中s是一个超过100,000个字符的字符串,并且在textBox上显示文本需要很长时间.
有人有解决方案让它更快吗?
最佳答案 为此,将s字符串拆分为多个字符串,并使用AppendText添加这些subStrings,如果检查
MSDN,您将看到:
AppendText方法使用户能够在不使用文本串联的情况下将文本附加到文本控件的内容,这可以在需要多个连接时产生更好的性能.
public string s = "Put you terribly long string here";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//For responsiveness
textBox1.BeginInvoke(new Action(() =>
{
//Here's your logic
for (int i = 0; i < s.Length; i += 1000)
{
//This if is just for security
if (i+1000 > s.Length)
{
//Here's your AppendText
textBox1.AppendText(s.Substring(i, s.Length-i));
}
else
{
//And it's here as well
textBox1.AppendText(s.Substring(i, 1000));
}
}
}));
}
我使用的值1000,你可以使用1500,2000,选择一个给出更好的结果.
希望这可以帮助.
更新:
AppendText适用于WindowsForms和WPF,太糟糕了,无法在WindowsPhone和WinRT上找到它.所以我认为这个解决方案可以帮到你很多