抓住儿童表格c#的近似事件

时间:2015-05-19 08:12:57

标签: c# forms winforms

在winform应用程序中,我有一个主表单和其他表单。当我点击主窗体中的“x”时,我想触发另一种形式的FormClosing事件。

@Update:

代码:

在计划中:

frmMain frm = new frmMain();
frm.ShowDialog();

在frmMain:

private void btnFrm2_Click(object sender, EventArgs e)
{
   Frm2 f2 = new Frm2();
   f2 .Show();
}

在Frm2中:

private void frm2_FormClosing(object sender, FormClosingEventArgs e)
{
     //something
}

关闭frm2_FormClosing时如何触发事件frmMain? 我知道我可以在关闭frm2时触发它,但我希望在关闭frmMain时触发它。

1 个答案:

答案 0 :(得分:0)

使用observer pattern,您可以在主窗体上发生FormClosing或任何其他操作时向订阅者(子窗体)发出通知。在订阅者的处理程序中,您可以提升它的FormClosing事件(subscribent,childform)或做任何你想做的事。

  1. 主要表格是主题
  2. 子表单订阅主题(主表单)
  3. 主要表单会在您选择的操作中引发通知事件(可能是您的案例中的formClosing)
  4. 所有订阅者都会收到通知(他们的#34;通知"事件被提出)
  5. 在那里"通知"事件,你做任何你想做的事,例如提出订阅者(子形式)的formClosing事件
  6. 我相信这种模式是直截了当且非常灵活的。我用它来更新多对多相关表格中的数据。