C# 子窗体c的捕获关闭事件
在winform应用程序中,我有一个主窗体和另一个窗体。我想在主窗体中单击x时触发另一窗体的窗体关闭事件 @更新: 代码: 在节目中: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
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您是对的,我的原始答案适用于已更改的原始问题。