C# 知道子窗体何时关闭

C# 知道子窗体何时关闭,c#,winforms,C#,Winforms,我有一个带按钮的表格1。单击按钮时,此代码块将执行: Form2 frm = new Form2(); frm.Name = "Form" + musteriNumarasi.ToString(); frm.Text = "Kullanıcı - " + musteriNumarasi.ToString(); 假设我点击了三次。现在有四种形式:Main、Child1、Child2、Child3。当用户关闭其中一个子窗体时,主窗体需要知道哪个子窗体已关闭。我该怎么做呢?将这些行添加到代码中,以处

我有一个带按钮的表格1。单击按钮时,此代码块将执行:

Form2 frm = new Form2();
frm.Name = "Form" + musteriNumarasi.ToString();
frm.Text = "Kullanıcı - " + musteriNumarasi.ToString();

假设我点击了三次。现在有四种形式:Main、Child1、Child2、Child3。当用户关闭其中一个子窗体时,主窗体需要知道哪个子窗体已关闭。我该怎么做呢?

将这些行添加到代码中,以处理关闭或关闭窗体的事件

frm.Closing += Form_Closing;
frm.Closed += Form_Closed;
将以下方法添加到当前类

void Form_Closing (object sender,EventArgs e){
//Handler form Closing Event
}
void Form_Closed (object sender,EventArgs e){
//Handler form Closed Event
}

订阅
关闭事件

Form2 frm = new Form2();    
frm.FormClosed += new FormClosedEventHandler(Form_Closed);

void Form_Closed(object sender, FormClosedEventArgs e)
{
    Form2 frm = (Form2)sender;
    MessageBox.Show(frm.Name);
}
。 .


一种方法是让父窗体侦听其子窗体的关闭事件。在父窗体上为子窗体的关闭事件建立一个侦听器,或者在子窗体的关闭事件中(语义较低),您可以在主窗体上执行代码。订阅FormClosed事件。为每个特定子级或公共子级使用专用事件处理程序,sender参数告诉您哪个已关闭。
sender
将是触发事件的表单对象上的引用。您应该真正编辑答案,而不是使用注释。此注释只是帮助您了解我的答案的提示。这会导致编译错误。错误CS0029无法将类型“System.EventHandler”隐式转换为“System.Windows.Forms.FormCloseDevenHandler”,然后将FormClosedEventArgs更改为EventArgs
Form2 frm = new Form2();   

frm.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frm _FormClosed);
private void frm_FormClosed(object sender, EventArgs e)
{
    //Runs after closing child :)
}