我的第二张表格不会打开,愿意在需要时提供更多细节
点击按钮后,它将进入下一个表单,但它只是在那之前关闭
private void btnNext_Click(object sender, EventArgs e)
{
frmGame_3_ v = new frmGame_3_();
this.Close();
v.Show();
}
这是程序在我关闭时显示的内容。
线程0x21fc已退出,代码为259(0x103)。线程0x22b8 已退出代码259(0x103)。 'ICSCulminating.vshost.exe'(CLR v4.0.30319:ICSCulminating.vshost.exe):已加载 'C:\用户\用户\桌面\ ICSCulminating(大卫)E3 \ ICSCulminating \ BIN \调试\ ICSCulminating.exe'。 符号已加载。线程0x207c已退出代码259(0x103)。 线程0x23c4已退出代码259(0x103)。该程序 '[7568] ICSCulminating.vshost.exe'已退出,代码为0(0x0)。
答案 0 :(得分:0)
根据评论者adv12的建议,您可以隐藏表单而不是关闭表单。这避免了关闭主窗体的问题,导致事件循环终止并且程序退出。
然而,这意味着您将未使用的表格留在周围,不会有任何影响。恕我直言,即使这本身并不是一个严重的问题,最好以更清洁的方式解决问题。
也就是说,更改程序的Main()
方法,以便它使用Application.Run()
方法的无参数重载。这将删除对初始表单的依赖性,以便您可以在不退出整个程序的情况下关闭它。然后,当您想关闭该程序时,可以调用Application.ExitThread()
方法(或Application.Exit()
,如果您愿意)。
在您的Main()
方法(在项目的Program.cs文件中找到)中,更改方法的最后一行,如下所示:
Application.Run(new Form1());
......对此:
new Form1().Show();
Application.Run();
注意:主Form
子类的名称可能不是Form1
。显然,现在使用您自己代码中的任何类名,如果它不是Form1
。