调用Close()后,如何检查表单是否真的关闭?

时间:2016-06-04 23:41:57

标签: c# winforms

我有一个自定义的Form类,它对Closing事件作出反应,如下所示:

class MyForm: Form
{
    ...
    private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        if ( ... )
            e.Cancel = true;
    }    
    ...  
}

现在,在其他地方,我在此表单上调用Close()

 MyForm frm;
 ...
 frm.Close();

问题:调用Close()后,如何确定表单是否真的已关闭,或者Closing事件中的结果是否已取消?

Close()方法不返回值,也不会抛出异常。

1 个答案:

答案 0 :(得分:1)

您可以查看IsHandleCreated属性。

frm.Close();
if(frm.IsHandleCreated)
{
    // Closing the form was cancelled, the form is still there
}