我的登录表单只有密码。如果用户输错密码3次,我希望关闭此登录表单。
我在类体中声明了这个变量:
int loginAttempts = 0;
当登录错误时,我使用:
loginAttempts++;
在登录按钮中输入我使用的事件:
private void login_bt_Enter(object sender, EventArgs e)
{
if (loginAttempts == 3)
{
login logf = new login();
logf.Close();
}
}
这似乎不起作用。我做错了什么?
答案 0 :(得分:3)
您正在关闭您创建的logf
实例,甚至不显示。我认为您需要关闭当前表格:
login_bt_Enter(object sender, EventArgs e)
{
if (loginAttempts == 3)
Close(); // simply close current form
}
答案 1 :(得分:0)
问题:您正在创建登录表单的新实例,然后关闭。
解决方案:您需要关闭已存在/已打开的登录表单。
因此您需要使用Application.OpenForms[]
试试这个:
if (loginAttempts == 3)
{
login form = (login) Application.OpenForms["login"];
form.Close();
}
答案 2 :(得分:0)
不要创建实例,只需关闭当前表单:
if (loginAttempts == 3)
{
this.Close();
}
答案 3 :(得分:0)
从0开始并在== 3处检查将允许4次尝试