打开下一个表格后,我的程序将关闭

时间:2015-01-17 02:35:49

标签: c#

我的第二张表格不会打开,愿意在需要时提供更多细节

点击按钮后,它将进入下一个表单,但它只是在那之前关闭

    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)。

1 个答案:

答案 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