-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 に答える