System.StackOverflowException: "Выдано исключение типа "System.StackOverflowException"."

    public partial class Form1 : Form
{
    private Form2 _form = new Form2();
    private ToolStripButton[] _toolStripButton;

public partial class Form2 : Form
{
    private Form1 _form1 = new Form1();
    private RadioButton[] _radioButtons;

Всего 2 формы и я хочу сделать ссылки, чтобы в форме 2 использовать методы формы 1 и в форме 1 использовать методы формы 2, но пишет ошибку. (Если убрать private Form1 _form1 = new Form1(); из 2 формы то все работает, без вызовов методов конечно.)


Ответы (3 шт):

Автор решения: DAVID

Как вариант можете в место private использовать static методы и тогда создавать экземпляр класса не потребуется. Вызов методов будет осуществляться в формате Form1.название метода(параметры). Однако при этом в статических методах нужно будет использовать только статические переменные.

→ Ссылка
Автор решения: Qwertiy
public partial class Form1 : Form
{
    private Form2 _form = new Form2() { _form1 = this };
    private ToolStripButton[] _toolStripButton;


public partial class Form2 : Form
{
    public Form1 _form1;
    private RadioButton[] _radioButtons;
→ Ссылка
Автор решения: Qwertiy
public partial class Form1 : Form
{
    private Form2 _form = new Form2(this);
    private ToolStripButton[] _toolStripButton;


public partial class Form2 : Form
{
    private Form1 _form1;
    private RadioButton[] _radioButtons;

    public Form2(Form1 _form1) {
      this._form1 = _form1;
    }
→ Ссылка