MaRiO
MaRiO

Reputation: 93

Accelerate add text to a TextBox

I have code to set text of TexBox as

 textBox1.Text = s;

where s is a string that have more than 100,000 char, and it take long time to show text on textBox.

Anybody have solution to make it faster ?

Upvotes: 5

Views: 544

Answers (2)

AymenDaoudi
AymenDaoudi

Reputation: 8309

To do that split the s string into many strings, and use the AppendText to add those subStrings, if you check MSDN you will see that :

The AppendText method enables the user to append text to the contents of a text control without using text concatenation, which, can yield better performance when many concatenations are required.

 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));
                }
            }
        }));
    }

I used the value 1000, you can use 1500 , 2000 , choose the one that gives better result. Hope this helps.

Update :

AppendText is available for both WindowsForms and WPF, too bad can't find it on WindowsPhone and WinRT. so I think this solution may help you a lot

Upvotes: 2

aemie
aemie

Reputation: 161

break s in sub strings and when you pass first sub string to the text box it will appear after that it concatenate to the second and so on. other way is that use loop to set the value

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

may these helps you

Upvotes: 0

Related Questions