我有一个表单(让我们称之为父表单),可以从中加载另一个“始终在顶部但不是模态”表单(就像对话框但不是对话框 - 用户可以将新的“子表单”保留在原处并继续处理父表单)。
用户第一次打开该子表单时,会加载并显示一些数据。如果他们关闭表单,我实际上会拦截关闭并简单地隐藏表单 - 这样下次他们打开它时,我们就不必重新加载数据(如果有的话,数据也不会发生很大变化)。
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
this.Hide();
}
稍后,当父窗体关闭时,我想强制子窗体正确关闭 - 在其基本窗体中运行一些代码以存储其位置和大小以供下次使用。
目前我打电话childForm.Dispose()来自父表单,它很好地清理了事情,但并没有给我太多的控制权。
但是,如果我调用 childForm.Close() 方法,e.CloseReason 仍然是“CloseReason.UserClosing”。
有没有办法区分用户关闭表单和我的代码(在父表单中)关闭它?
只需添加一个特殊的“ReallyClose()
" 进行清理的方法,并在您确实想要关闭表单时调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)