如何在3次尝试失败后关闭表格?

时间:2014-03-10 17:28:08

标签: c# winforms

我的登录表单只有密码。如果用户输错密码3次,我希望关闭此登录表单。

我在类体中声明了这个变量:

int loginAttempts = 0;

当登录错误时,我使用:

loginAttempts++;

在登录按钮中输入我使用的事件:

private void login_bt_Enter(object sender, EventArgs e)
{
     if (loginAttempts == 3)
     {
         login logf = new login();
         logf.Close();
     }
}

这似乎不起作用。我做错了什么?

4 个答案:

答案 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次尝试