从另一个FormClosed事件关闭活动表单

时间:2016-04-22 13:56:46

标签: c# winforms

我有一个包含多个函数的类,在所有这些函数中我都有一个try catch并且在catch中我启动一个新表单来显示错误。像这样:

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

但是每当我关闭错误表单时,我都需要能够关闭当前表单FormUpdate作为示例。 我把这行代码放在错误的FormClosed事件中:

UpdateOrca.Update.ActiveForm.Close();
  

“更新”是需要关闭的开放表单。

3 个答案:

答案 0 :(得分:1)

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

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

然后,您可以删除NewError关闭事件中的代码。

答案 1 :(得分:0)

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

答案 2 :(得分: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();
        }

希望它有所帮助。