我有一个主表格和两种子表格


  主窗体
  ChildFormA-独特
  ChildFormB-具有此类型的多种形式


我用以下方法创建ChildFormA:

ChildFormA form1 = new ChildFormA();
form1.MdiParent = this;
form1.Show();


但是当我关闭它时:

form1.Close();


我无法重新打开它。
我已经阅读了一些技巧,可以隐藏此表单或将其关闭。但是X按钮仍然关闭该窗体。
如何重新打开或如何防止X按钮关闭并简单地隐藏它?

最佳答案

如果希望子窗体保持其状态,则必须订阅FormClosing事件,并将事件参数的Cancel属性设置为true

public ChildForm()
{
    ...
    FormClosing += new FormClosingEventHandler(ChildForm_FormClosing);
}


void ChildForm_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
    Hide();
}


请记住,如果您不为此添加更多逻辑,则不会处理您的表单。

否则,您可以仅创建一个新实例。

08-04 20:17