C# MDI: Как изменить метку родительского статуса на имя активной дочерней формы

Я работаю над приложением Windows Forms MDI, которое может создавать новые дочерние формы внутри себя. У родительской формы есть StatusLabel в Statusstrip. Я пытаюсь выяснить, как изменить текстовое значение StatusLabel родительской формы на имя активной дочерней формы. Я создал "активированное" событие в дочерней форме, но не знаю, как изменить родительскую форму statusLabel из блока кода "активированной" дочерней формы.

По сути, я хочу изменить метку в родительской форме на свойство имени дочерней формы.

Любая помощь будет принята с благодарностью.

1 ответ

Решение

Попробуйте подписаться на событие Activated дочерней формы:

protected override void OnLoad(EventArgs e) {
  base.OnLoad(e);

  for (int i = 0; i < 3; ++i) {
    Form f = new Form();
    f.Activated += f_Activated;
    f.MdiParent = this;
    f.Text = "Form #" + i.ToString();
    f.Show();
  }      
}

void f_Activated(object sender, EventArgs e) {
  toolStripStatusLabel1.Text = ((Form)sender).Text;
}
Другие вопросы по тегам