Look at your code:
foreach (string str in arr)
{
textBox1.Text = str + "\n";
}
Each time round the loop, you overwrite the content of the textbox with the current string, discarding all previous data.
You could try:
foreach (string str in arr)
{
textBox1.Text += str + "\n";
}
But it will ignore the newline.
If it's a Multiline text box, then you're better off doing this:
foreach (string str in arr)
{
textBox1.AppendText(str + "\n" );
}