我创建了一个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!");
}
}
这是我的登录代码
答案 0 :(得分:1)
算法应该遵循 - 在应用程序启动时显示登录表单的方法Main
。如果用户成功登录,则将此表单的DialogResult
设置为DialogResult.OK
。然后处理登录表单返回的DialogResult
。如果它不是OK
那么只是存在应用程序。否则运行您的主表单:
using(LoginForm login = new LoginForm())
{
if (login.ShowDialog() != DialogResult.OK)
return;
}
Application.Run(new MainForm());