捕获子窗体c#的关闭事件
本文关键字:事件 窗体 | 更新日期: 2023-09-27 17:49:37
在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
}
关闭frmMain
时如何触发frm2_FormClosing
事件?我知道我可以在关闭frm2
时触发它,但是我想在关闭frmMain
时触发它。
使用观察者模式,你可以在主表单上发生FormClosing或任何其他动作时通知订阅(子表单)。在subscribent的处理程序中,你可以引发它的FormClosing事件(subscribent, childform)或做任何你想做的事情。
- 主要形式为主题
- 子表单订阅主题(主表单)
- 主表单在您选择的操作中引发notify事件(在您的情况下可能是formClosing)
- 所有订阅者得到通知(他们的"通知"事件被引发)
- 在"通知"事件中,你可以做任何你想做的事情,例如引发订阅(子表单)的formClosing事件
我相信这种模式是直接的和非常灵活的。我用它来更新多对多相关形式的数据