if (username.Text == "" && password.Text == "")
{
MessageBox.Show("Please Enter Username and Password");
}
if (!File.Exists(username.Text + ".txt"))
{
err.SetError(username, "Username not exist"); //sets the error
//MessageBox.Show("Please Enter Your Username");
}
else
{
err.SetError(username, ""); //clears the error
err.SetError(password, "");
TextReader tr = new StreamReader(username.Text + ".txt");
string pass = tr.ReadLine();
if (pass == password.Text)
{
app.Show();
this.Hide();
}
else
{
err.SetError(password, "Password Incorrect");
// MessageBox.Show("Please Enter Your Password");
}
当我使用空用户名和空密码测试登录时发生的问题,用户名和错误警告信息“请输入用户名和密码”显示。如何解决这个问题,以便在输入时什么都不显示消息框?当用户输入错误的用户名或密码时,警告会显示?
我目前正在使用C#Windows Forms。
答案 0 :(得分:2)
问题是您的代码在第一个if语句后继续。
您可以在if语句中添加return
:
if (username.Text == "" && password.Text == "")
{
MessageBox.Show("Please Enter Username and Password");
return;
}
或者您可以将第二个if更改为else if
:
if (username.Text == "" && password.Text == "")
{
MessageBox.Show("Please Enter Username and Password");
}
else if (!File.Exists(username.Text + ".txt"))
{
err.SetError(username, "Username not exist"); //sets the error
//MessageBox.Show("Please Enter Your Username");
} else {
....
}
这样,如果用户名和密码为空,则不会执行!File.Exists
。
答案 1 :(得分:1)
回归
试试这个:
if (username.Text == "" && password.Text == "")
{
MessageBox.Show("Please Enter Username and Password");
return;
}
if (!File.Exists(username.Text + ".txt"))
{
err.SetError(username, "Username not exist"); //sets the error
//MessageBox.Show("Please Enter Your Username");
}
else
{
err.SetError(username, ""); //clears the error
err.SetError(password, "");
TextReader tr = new StreamReader(username.Text + ".txt");
string pass = tr.ReadLine();
if (pass == password.Text)
{
app.Show();
this.Hide();
}
else
{
err.SetError(password, "Password Incorrect");
// MessageBox.Show("Please Enter Your Password");
}