C# 加速向文本框添加文本

C# 加速向文本框添加文本,c#,.net,string,performance,textbox,C#,.net,String,Performance,Textbox,我有代码将TexBox的文本设置为 textBox1.Text = s; 其中s是一个超过100000个字符的字符串,在文本框上显示文本需要很长时间 有人有办法让它更快吗?在子字符串中打断s,当您将第一个子字符串传递到文本框时,它将在传递后显示,并连接到第二个子字符串,依此类推。 另一种方法是使用循环来设置值 for(int i=0;i<s.length; i++) { textBox1.Text += s[i]; } for(int i=0;i要执行此操作,请将s字符串拆分

我有代码将TexBox的文本设置为

 textBox1.Text = s;
其中s是一个超过100000个字符的字符串,在文本框上显示文本需要很长时间


有人有办法让它更快吗?

在子字符串中打断s,当您将第一个子字符串传递到文本框时,它将在传递后显示,并连接到第二个子字符串,依此类推。 另一种方法是使用循环来设置值

for(int i=0;i<s.length; i++)
{
   textBox1.Text += s[i];
 }

for(int i=0;i要执行此操作,请将
s
字符串拆分为多个字符串,并使用AppendText添加这些子字符串,如果选中,您将看到:

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));
                }
            }
        }));
    }
publicstring s=“在此处放置非常长的字符串”;
公共表格1()
{
初始化组件();
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
//为了响应
textBox1.BeginInvoke(新操作(()=>
{
//这是你的逻辑
对于(int i=0;is.长度)
{
//这是你的短信
textBox1.AppendText(s.Substring(i,s.Length-i));
}
其他的
{
//它也在这里
textBox1.AppendText(s.Substring(i,1000));
}
}
}));
}
我用的值是1000,你可以用1500,2000,选择一个效果更好的。 希望这有帮助

更新:


AppendText可用于WindowsForms和WPF,可惜在WindowsPhone和WinRT上找不到它。因此我认为此解决方案可能会帮助您解决许多有趣的问题。等待解决方案:)对于较长的文本,文本框有点慢。尝试改用富文本框。这可能会加快速度。这是在Windows窗体上还是在XAML上?@AymanDaoudi:WinFormI我不认为这是WinForms的一个选项,但对于WPF来说,这是一个很好的解决方案。@Madushan:AppendText在这两种情况下都可用,你的意思是说没有性能方面的选项吗?我尝试了这种方法,但它仍然非常缓慢。。很抱歉这两种版本都有。@MaRiO:是的,你说得对,它确实很慢,现在试试我的更新。它很快,我试过了。