如何检测内部控件何时关闭所有者表单?

时间:2011-05-30 10:31:56

标签: c# .net winforms

如何检测所有者表单何时关闭(来自其中的控件)?

UPD我需要控件知道它的形式正在关闭,反之亦然

3 个答案:

答案 0 :(得分:13)

FredrikMörk对此解决方案的信任:

FindForm().FormClosing += parentForm_FormClosing;

答案 1 :(得分:3)

您应该拦截 FormClosing 事件。在FormClosingEventArgs中,变量CloseReason将显示表单关闭的原因。当此变量等于 UserClosing 枚举值时,最好的选择是拦截。

答案 2 :(得分:0)

表单所有者关闭是指另一个父表单关闭表单时可以关闭表单,或者在父表单关闭时关闭表单。

使用表单结束事件检查另一个表单是否关闭了表单:

private void AppMainForm_FormClosing(object sender, FormClosingEventArgs e)
{
   if(e.CloseReason == CloseReason.FormOwnerClosing)
    {
       // do something
    }
    else
    {
       // do nothing
    }
}