Полагаю, вы, вероятно, пришли из фона Visual Basic, как я.
В C # формы являются просто экземплярами класса Form, у них нет особого статуса, как во времена VB6.
Когда вы звоните new Form1()
, вы в основном создаете новую форму , а не , обращаясь к той же форме. Как и у любой формы, может быть несколько экземпляров, потому что на самом деле это просто класс C #.
Это можно исправить, если метод x () принимает текущую форму в качестве параметра
static void x(Form1 theForm)
{
theForm.y();
}
private void button1_Click(object sender, EventArgs e)
{
x(this);
}
Параметр this внутри класса формы указывает на сам экземпляр формы.
Теперь вы должны получить правильное значение вместо значения по умолчанию при создании формы.
Полагаю, вам нужно, чтобы x()
был static
, нет? Но если это не так, лучше удалить static
из x()
.
void x()
{
this.y();
// or you can just omit the this qualifier and call just y();
}