Вы создаете частный экземпляр Form1 при создании Form1, так что это своего рода бесконечный цикл:
Где-то в вашем коде вы создаете свой первый экземпляр Form1.
Когда этот экземпляр создается, он создает новый экземпляр Form1.
Этот экземпляр также создает экземпляр Form1 и снова, и снова и т. Д.
Итак, когда создается экземпляр, все переменные инициализируются, и когда вы объявляете их следующим образом:
Form1 f1 = new Form1()
это автоматически устанавливает новый экземпляр формы.
Я предлагаю, чтобы у вас не было нового экземпляра вашей Form1 внутри Form1, но если вам действительно это нужно, создайте метод для создания экземпляра:
Измените Form1 f1 = new Form1();
на Form1 f1;
.
И создайте метод:
public void InstantiateNewForm1Instance()
{
f1 = new Form1();
}
Но: НЕ НАЗЫВАЙТЕ ЭТОТ МЕТОД В КОНСТРУКТОРЕ! Или у вас будет такая же проблема: -)