我正在尝试这样做,以便当用户在密码文本框中输入密码时,它会检查其长度,如果少于 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();
}
}
这是到目前为止的代码。
正如评论或提到的,您正在检查 <= 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?