当第二种形式出现时,两种形式都意外关闭

时间:2015-03-29 17:34:49

标签: c# winforms forms

我希望在显示第二个时关闭第一个表单。但是所有表格都意外地关闭了我无法理解为什么。请解释我它的原因并帮助我正确地做到这一点。

我的代码:

private void b_digerForm_Click(object sender, EventArgs e)
{
    this.Close();
    F_Diger digerForm = new F_Diger();
    digerForm.ShowDialog();
}
P.S:我是C#的新手。我搜索了这个问题,但找不到任何有用的帖子。

非常感谢。

5 个答案:

答案 0 :(得分:1)

您使用ShowDialog打开表单。这意味着当主窗体关闭时,所有对话框窗口也将关闭。你可以使用digerForm.Show();保持第二种形式开放。

答案 1 :(得分:0)

由于这是主窗体,您必须隐藏它,而不是关闭它,否则在不同的上下文中运行您的应用程序。

private void b_digerForm_Click(object sender, EventArgs e)
{    
    this.Hide();
    F_Diger digerForm = new F_Diger();
    digerForm.ShowDialog();
}

答案 2 :(得分:0)

您的问题是您正在尝试关闭主窗体,并且通过这样做,您将关闭该窗体(form2)的子窗体。您最好的选择是在查看第二个时使用this.Hide()隐藏form1。

请记住在完成form2

后关闭

答案 3 :(得分:0)

使用此

private void b_digerForm_Click(object sender, EventArgs e)

{

F_Diger digerForm = new F_Diger();
digerForm.ShowDialog(this);

}

答案 4 :(得分:0)

更改Program.cs文件,以便不为应用程序定义主窗体。

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        Form FormLogin = new FrmLogin();
        FormLogin.Show();

        Application.Run();
    }
}