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

1

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

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

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

Теги:
forms
parent-child
mdi

1 ответ

0
Лучший ответ

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

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;
}
  • 0
    Будет ли этот код идти в блок кодов, активируемый childs?
  • 0
    @danslik Весь этот код, который я вам показываю, находится в родительском MDI. Когда я создал дочернюю форму, у меня есть родитель, слушающий активированное дочернее событие. Тогда я могу просто привести отправителя к форме и получить заголовок формы. Если вам нужно имя, вы должны заменить .Text для .Name (и дать форме имя при ее создании, которое в моем коде пропущено).
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню