我有一个在MDI子项中使用的usercontrol。我正在通过这样做来改变MDI子项关闭时的可见性。
private void MDIChild_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Visible = false;
}
但是当我将MDI表单的可见性更改为true时,即使未触发表单加载,也会触发用户控件加载事件。但是,如果是正常的窗口形式,则不会发生这种情况。
基本上我需要在某些情况下禁用我的MDI孩子的关闭功能。
知道怎么做吗?
答案 0 :(得分:2)
来自UserControl Load事件的MSDN文档
如果UserControl是MDI子窗体的一部分,则Load事件将为 每次显示子表单时都会出现。在这种情况下,你应该把 UserControl中的任何一次性初始化代码而不是Load 事件处理程序。
因此,当您显示MDI表单时,将满足此条件。这意味着,在这种情况下,如果您依赖于UserControl的Load事件,则应该将其移动到另一个方法,并在显示MDI表单时显式调用它。