2016-04-22 53 views
0

我有一个有几个函数的类,在所有这些函数中,我有一个try catch和catch,我开始一个新的表单来显示错误。像这样:从另一个FormClosed事件中关闭一个活动表单

Program.erro = exception.ToString(); 
Error NewError = new Error(); 
Error.ShowDialog(); 

但我需要能够关闭当前窗体FormUpdate作为示例,只要我关闭错误窗体。 我已经把这个行代码中错误的FormClosed事件:

UpdateOrca.Update.ActiveForm.Close(); 

“更新”是开放的形式需要被关闭。

回答

1

您可以使用using语句,然后当您的错误对话框关闭时,其余代码将执行。

using (Error NewError = new Error()) 
{ 
    NewError.ShowDialog() 
} 
this.close(); 

然后,您可以删除已放置在NewError收盘事件的代码。

0

正如你可以在that看到的SO问题在主窗体中创建子窗体的close事件,并在其中调用this.close()将解决问题。

0

您应该将调用窗体实例传递给对话框。 .NET允许您识别打开表单的所有者窗体。

例如;你可以像打开一个弹出窗口;

Dialog frmDialog = new Dialog(); 
frmDialog.ShowDialog(this); 

然后;在弹出窗体中,您可以听到form_closing事件,如;

private void Dialog_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      if (this.Owner != null) 
       this.Owner.Close(); 
     } 

希望它有帮助。