C#winform对话没有关闭程序

时间:2014-05-08 21:11:44

标签: c# winforms dialog

我创建了一个mainForm(这是我的程序实际启动的地方)和loginForm。当程序启动时,loginForm会以对话框的形式出现,所以当我正确登录时,它会关闭,并且mainForm会像预期的那样弹出。

当我点击红色" X" (右上角)我的mainForm我的整个应用程序关闭,这很好。但当我击中" X"在我的对话inlog表单中,我的对话关闭但我的mainForm仍然弹出?

我该如何解决这个问题?提前谢谢!

private void loginButton_Click(object sender, EventArgs e)
{
    try
    {
        var sr = new System.IO.StreamReader("C:\\" + inlogNaamTextbox.Text + "\\Login.txt");
        gebruikersnaam = sr.ReadLine();
        passwoord = sr.ReadLine();
        sr.Close();

        if (gebruikersnaam == inlogNaamTextbox.Text && passwoord == inlogPasswoordTextbox.Text)
        {
            MessageBox.Show("Je bent nu ingelogd!", "Succes!");
            this.Dispose();
        }
        else
            MessageBox.Show("Gebruikersnaam of wachtwoord fout!", "Fout!");
    }
    catch (System.IO.DirectoryNotFoundException ex)
    {
        MessageBox.Show("De gebruiker bestaat niet!", "Fout!");
    }
}

这是我的登录代码

1 个答案:

答案 0 :(得分:1)

算法应该遵循 - 在应用程序启动时显示登录表单的方法Main。如果用户成功登录,则将此表单的DialogResult设置为DialogResult.OK。然后处理登录表单返回的DialogResult。如果它不是OK那么只是存在应用程序。否则运行您的主表单:

using(LoginForm login = new LoginForm())
{
   if (login.ShowDialog() != DialogResult.OK)
      return;
}

Application.Run(new MainForm());