如何在表单关闭时打开新窗口

本文关键字:新窗口 窗口 表单 | 更新日期: 2023-09-27 18:07:30

如何在关闭按钮上打开表单1在表单2中单击X我试过了,但不起作用:

private void supplierShow_FormClosing(object sender, EventArgs e)
{
    new suppliersList().Show();
}

谢谢。

如何在表单关闭时打开新窗口

在不了解更多代码的情况下不完全确定,但对我来说,这看起来像是在声明一个局部变量(可能是基类Form的new suppliersList(,并显示另一个表单的Closed事件中的表单。

您的Form2对象可能很快就会被删除/丢弃/垃圾收集,在这一点上,我不完全确定在该范围内声明的表单是否仍然有很好的使用寿命。

如果Form2是申请表,那么当你关闭它时,该申请实际上会终止

一般来说,我认为这种形式的切换最好从主方法进行和控制,也就是你可能有Application.Run(new Form2());的地方,因为在那里你可以完全控制应用程序流和MessageLoops。。。

我必须解决方案:

第一个:

您可能在程序类中有一个对您的供应商列表的唯一引用

public static suppliersList SuppList = new suppliersList();

你现在可以隐藏它,如果你想:

Program.SuppList.Hide();

你也可以随时展示:

Program.SuppList.Show((;

小心!不要Dispose SuppList。如果执行了,请为其指定一个新对象new suppliersList();。请注意,只有在form1不是主要形式(即Application.Run(new form1());(的情况下,此解决方案才会成功

第二:

您可以启动form2作为form1:窗口的子窗口

new suppliersList().Show(this);

因为,正如在另一个答案中一样,应用程序循环在form1上。如果form1被关闭,那么整个应用程序也将被关闭。但是,启动主窗口的子窗口将阻止应用程序关闭。

如果答案对你有用,请将其标记为你的最佳答案。