C# C MDI:如何将父状态标签更改为活动子窗体名称

C# C MDI:如何将父状态标签更改为活动子窗体名称,c#,forms,parent-child,mdi,toolstripstatuslabel,C#,Forms,Parent Child,Mdi,Toolstripstatuslabel,我正在开发一个Windows窗体MDI应用程序,它可以在自己内部创建新的子窗体。父窗体在Statusstrip中有一个StatusLabel。我试图找出如何将父窗体的StatusLabel文本值更改为活动子窗体的名称。我在子窗体中创建了一个激活的事件,但我不知道如何从子窗体的激活代码块更改父窗体statusLabel 基本上,我想将父窗体中的标签更改为子窗体名称属性 非常感谢您的帮助。尝试订阅子表单的激活事件: protected override void OnLoad(EventArgs e

我正在开发一个Windows窗体MDI应用程序,它可以在自己内部创建新的子窗体。父窗体在Statusstrip中有一个StatusLabel。我试图找出如何将父窗体的StatusLabel文本值更改为活动子窗体的名称。我在子窗体中创建了一个激活的事件,但我不知道如何从子窗体的激活代码块更改父窗体statusLabel

基本上,我想将父窗体中的标签更改为子窗体名称属性


非常感谢您的帮助。

尝试订阅子表单的激活事件:

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;
}

这段代码会进入childs激活的代码块吗?@danslik我向您展示的所有代码都在MDI父级中。创建子窗体时,我让父窗体侦听子窗体的激活事件。然后,我可以将发送者强制转换为一个表单,并获取表单的标题。如果您想要名称,您可以替换.name的.Text,并在创建表单时为表单指定一个名称,我的代码省略了该名称。感谢您迄今为止的帮助,我非常感谢。