如何在表单关闭时打开新窗口
本文关键字:新窗口 窗口 表单 | 更新日期: 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被关闭,那么整个应用程序也将被关闭。但是,启动主窗口的子窗口将阻止应用程序关闭。
如果答案对你有用,请将其标记为你的最佳答案。