C# 子窗体c的捕获关闭事件

C# 子窗体c的捕获关闭事件,c#,forms,winforms,C#,Forms,Winforms,在winform应用程序中,我有一个主窗体和另一个窗体。我想在主窗体中单击x时触发另一窗体的窗体关闭事件 @更新: 代码: 在节目中: frmMain frm = new frmMain(); frm.ShowDialog(); 在frmMain中: private void btnFrm2_Click(object sender, EventArgs e) { Frm2 f2 = new Frm2(); f2 .Show(); } 在Frm2中: private void fr

在winform应用程序中,我有一个主窗体和另一个窗体。我想在主窗体中单击x时触发另一窗体的窗体关闭事件

@更新:

代码:

在节目中:

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\u FormClosing? 我知道我可以在关闭frm2时触发它,但我想在关闭frmMain时触发它。

当表单关闭或主表单上发生任何其他操作时,您可以使用向订阅方的子表单发出通知。在SubscribBent的处理程序中,您可以引发它的FormClosing事件SubscribBent、childform或执行任何您想要的操作

主形式是主语 子窗体订阅主题主窗体 主窗体在您选择的操作中引发notify事件,可能是案例中的formClosing 所有订阅方都会收到通知,并引发其通知的事件 在通知的事件中,您可以执行任何您想要的操作,例如,子窗体的raiseformclosing事件
我相信这种模式是直截了当的,非常灵活。我使用它来更新多对多相关表单中的数据。

请阅读然后编辑您的问题。您知道如何订阅活动吗?你到底被困在哪里?几天前我回答了类似的问题。当我关闭主窗体时,所有其他窗体也关闭。但它不会触发子表单的FrmClosing事件。我认为此解决方案不适用于@chani Poz post@ChaniPoz的情况。我建议您调查一下,我相信这是解决您问题的最合适的解决方案。你可以使你的主要形式成为主题。检查我的答案以了解更新情况。@HariPrasad您是对的,我的原始答案适用于已更改的原始问题。