Так что я делаю tic tac toe. В основном файле (Form1.cs) я хочу иметь только кнопки button1_click, button2_click, в которых я бы вызвал функцию из Class1. Моя проблема в том, что у меня есть цикл, поэтому debuger возвращает ошибку SystemStackOverflowException unhandelded.Передача значения из класса обратно в форму
Form1.cs:
Form1 frm1;
Class1 cl;
public Form1()
{
cl = new Class1();
frm1 = this;
InitializeComponent();
}
private void button5_Click(object sender, EventArgs e) //gumb za tip1 igro
{
cl.button1funkcija(frm1);
}
Class1.cs
Form1 form = new Form1(); //its needed so i can use it in my own made functions (prehod_stan2())
public void button1funkcija (Form1 form)
{
if (form.numericUpDown2.Value != 0)
{
form.label10.Text = "Preostale igre:" + form.numericUpDown2.Value;
tip = 3;
st_iger = form.numericUpDown2.Value;
prehod_stran2();
form.errorProvider6.Clear();
stanje();
}
else //če je število iger enako 0, prikaži napako
{
form.errorProvider5.Clear();
form.errorProvider6.SetError(form.numericUpDown2, "Število more biti večje od 0");
}
}
public void prehod_stran2()
{
if (form.textBox1.Text == "")
{
form.errorProvider1.SetError(form.textBox1, "Polje mora biti izpolnjeno");
if (form.textBox2.Text == "")
form.errorProvider2.SetError(form.textBox2, "Polje mora biti izpolnjeno");
}
}
В вашем коде отсутствуют обработчики событий button1_click и button2_click, а также отсутствует часть вызываемого класса1. Мы не можем помочь вам без этой информации. – venerik
Форма Form1 = новая строка Form1(); ', где вы, вероятно, ошибаетесь. Вам не нужен новый экземпляр формы - вы хотите использовать существующий экземпляр. Вы передадите экземпляр формы в конструктор 'Class1'. – Enigmativity
Probelm - это код preety огромный, я не уверен, почему вам нужно нажать кнопку1 и кнопку2, они даже не выходят (имена зарезервированы для чего-то еще, что приходит позже) – user3421357