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