Вы создаете отдельную новую Form1
, когда нажимаете кнопку MyForm
.Вам нужно передать ссылку на существующий Form1
на MyForm
, например, через конструктор, и изменить метку для этого объекта.
Это должно выглядеть примерно так.Это обходит класс Global
, так как MyForm
имеет ссылку напрямую.Если вы хотите сохранить класс Global
, вам придется сделать нечто подобное, предоставить Global
ссылку на Form1
и убедиться, что метод Hey
использует эту ссылку Form1
.И поскольку вы вызываете статический метод, вам не нужно предварительно создавать новый объект Global
.
MyForm.cs
private Form1 _form;
public MyForm(Form1 form)
{
InitializeComponent();
_form = form;
}
private void button1_Click(object sender, EventArgs e)
{
_form.ChangeLabel();
}
Form1.cs
public void ChangeLabel()
{
status_label.Text = "HeyHey";
MessageBox.Show(status_label.Text);
// MessageBox : HeyHey, but on UI showing the old value.
}
// MyForm open
private void button_Click(object sender, EventArgs e)
{
MyForm mf = new MyForm(this);
if (!mf.Visible)
{
mf.Show();
}
else
{
mf.BringToFront();
}
}