我在这里对我的登录系统有问题。
当我输入有效的用户名和密码时,我可以转到下一个表单。
并且当我输入错误的用户名和正确的密码时,我仍然可以转到下一个表单。
并更正用户名和错误的密码,我仍然可以转到下一表格。
如果我的用户名或密码错了,那么正确的代码是什么?
这是我的代码。
private void btnEnter_Click(object sender, EventArgs e)
{
if (tbUsername.Text == "username")
{
AdminMainMenu x = new AdminMainMenu();
x.Show();
t.Play();
this.Dispose();
}
else
{
SystemSounds.Hand.Play();
MessageBox.Show("Invalid Username! ", "Error");
}
if (tbPassword.Text == "password")
{
AdminMainMenu x = new AdminMainMenu();
x.Show();
t.Play();
this.Dispose();
}
else
{
SystemSounds.Hand.Play();
MessageBox.Show("Invalid Password! ", "Error");
}
}
我只能猜测您要问的内容,但是如果您希望用户名和密码都正确,请在显示表单之前使用此而不是
if (tbUsername.Text == "username")
{
if(tbPassword.Text == "password")
{
AdminMainMenu x = new AdminMainMenu();
x.Show();
t.Play();
this.Dispose();
}
else
{
MessageBox.Show("Wrong password", "Error");
}
}
else
{
if(tbPassword.Text == "password")
{
MessageBox.Show("Wrong username", "Error");
}
else
{
MessageBox.Show("Wrong username and password", "Error");
}
}
您可以在成功的用户名if
块中嵌套密码检查if
块:
private void btnEnter_Click(object sender, EventArgs e)
{
if (tbUsername.Text == "username")
{
if (tbPassword.Text == "password")
{
AdminMainMenu x = new AdminMainMenu();
x.Show();
t.Play();
this.Dispose();
}
else
{
SystemSounds.Hand.Play();
MessageBox.Show("Invalid Password! ", "Error");
}
}
else
{
SystemSounds.Hand.Play();
MessageBox.Show("Invalid Username! ", "Error");
}
}
您拥有它的方式是用户名检查的else
块是在用户名错误时执行的,然后代码继续进行密码检查。您需要确保仅在检查用户名和密码后显示表单。
另外,如果用户名或密码不正确,则可以单独检查单独和return
:
private void btnEnter_Click(object sender, EventArgs e)
{
if (tbUsername.Text != "username")
{
SystemSounds.Hand.Play();
MessageBox.Show("Invalid Username! ", "Error");
return;
}
if (tbPassword.Text != "password")
{
SystemSounds.Hand.Play();
MessageBox.Show("Invalid Password! ", "Error");
return;
}
//If we got here in code execution, then both username and password are correct
AdminMainMenu x = new AdminMainMenu();
x.Show();
t.Play();
this.Dispose();
}