c# - 重新打开子窗体

标签 c# winforms

我有一种主窗体和两种子窗体

MainForm
ChildFormA - unique
ChildFormB - have multiple forms of this type

我用以下方法创建 ChildFormA:

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

但是当我关闭它时:

form1.Close();

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

最佳答案

如果您希望您的子表单保持其状态,您必须订阅 FormClosing 事件并将事件参数的 Cancel 属性设置为 是的

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


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

请记住,如果您不向其中添加更多逻辑,您的表单将不会被处理掉。

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

关于c# - 重新打开子窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8713807/

相关文章:

c# - 如何在 OnRowEditing 中保留行值

c# - 如何在 C# 中存储表 - 我应该使用什么样的数据结构?

c# - 代码中没有错误,但尝试更新表时没有发生任何更改

c# - winForms 中的单选按钮样式?

c# - 如何使用线程在 ListView 中添加项目?

c# - Graphics.DrawString 在打印页面上居中文本

c# - 在 C# 中从快照恢复 SQL Server 数据库

c# - GZipStream 压缩问题(Lost Byte)

c# - Autofac 可选/惰性依赖项

c# - 有没有办法在 Windows 窗体的 LinkLabel 控件中放置多个链接