如果第一个输入错误但第二个输入正确,我如何退出 if 语句,它会显示第一个输入的错误消息并接受第二个输入

问题描述 投票:0回答:1

我正在尝试这样做,以便当用户在密码文本框中输入密码时,它会检查其长度,如果少于 10 个字符,则会显示一条错误消息,但它会显示您的密码长度为 10 个或更多字符它接受密码并打开游戏表单。我有它,以便它显示错误消息,但如果第一次尝试不正确,则之后的所有其他尝试即使它们是 10 个字符或更长,它也会在不应该显示错误消息时显示错误消息

private void button2_Click(object sender, EventArgs e)
{   
    PasswordRestrictions.Hide();

    if (NewPassword.Text.Length <= 10)
    {
        MessageBox.Show("Your password must be atleast 10characters long");
    }

    if (NewPassword.Text.Length >= 10)
    {
        this.Hide();
        var gameForm = new GameForm();
        gameForm.Closed += (s, args) => this.Close();
        gameForm.Show();
    }
    
}

这是到目前为止的代码。

c# windows-forms-designer
1个回答
0
投票

正如评论或提到的,您正在检查 <= 10, and then in the second

if
,>= 10。因此,如果用户输入正好 10 个字符长的密码,它将执行两个
if
块。尝试将第二个
if
更改为
else

除此之外,我看不出有任何明显的原因

NewPassword.Text.Length
会举报<= 10 if that want the case. Can you place a breakpoint and inspect the value of the property?

© www.soinside.com 2019 - 2024. All rights reserved.