Ваша ошибка в том, что вы переписываете текст, а не добавляете к нему. Измените его на lblResult.Text += Fibonacci(i).ToString()
для добавления.
Однако обратите внимание, что добавление большого количества текста из цикла в элемент графического интерфейса является проблематичной операцией. Вы несете огромные накладные расходы на чтение и написание графического интерфейса Elemetns. Это не имеет значения, если вы делаете это только один раз для события, инициируемого пользователем, но из цикла вы заметите это быстро.
Может быть, лучше построить последовательность в коде, а затем показать ее за один раз. Я даже написал пример кода, чтобы продемонстрировать, что проблемы:
using System;
using System.Windows.Forms;
namespace UIWriteOverhead
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] getNumbers(int upperLimit)
{
int[] ReturnValue = new int[upperLimit];
for (int i = 0; i < ReturnValue.Length; i++)
ReturnValue[i] = i;
return ReturnValue;
}
void printWithBuffer(int[] Values)
{
textBox1.Text = "";
string buffer = "";
foreach (int Number in Values)
buffer += Number.ToString() + Environment.NewLine;
textBox1.Text = buffer;
}
void printDirectly(int[] Values){
textBox1.Text = "";
foreach (int Number in Values)
textBox1.Text += Number.ToString() + Environment.NewLine;
}
private void btnPrintBuffer_Click(object sender, EventArgs e)
{
MessageBox.Show("Generating Numbers");
int[] temp = getNumbers(10000);
MessageBox.Show("Printing with buffer");
printWithBuffer(temp);
MessageBox.Show("Printing done");
}
private void btnPrintDirect_Click(object sender, EventArgs e)
{
MessageBox.Show("Generating Numbers");
int[] temp = getNumbers(1000);
MessageBox.Show("Printing directly");
printDirectly(temp);
MessageBox.Show("Printing done");
}
}
}
Как уже упоминал другой комментатор, вы, возможно, захотите перейти к какой-либо форме многозадачности. Действительно, мой первый опыт многозадачного обучения был проверкой Fibbonacci / Prime Number. Это хороший пример для изучения.