-11

我的登录系统有问题。

当我输入有效的用户名和密码时,我可以进入下一个表格。

当我输入错误的用户名和正确的密码时,我仍然可以进入下一个表格。

并且正确的用户名和错误的密码我仍然可以进入下一个表格。

如果我的用户名或密码错误,不让下一个的正确代码是什么?

这是我的代码。

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");
    }   
}
4

2 回答 2

2

我只能冒险猜测您要问的内容,但是如果您希望在显示表单之前用户名和密码都正确,请改用

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");
    }
}
于 2012-10-24T15:02:18.220 回答
0

您可以将密码检查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();
}
于 2012-10-24T15:03:40.977 回答