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

本文关键字:表单 3次 失败 | 更新日期: 2023-09-27 17:49:14

我有一个只有密码的登录表单。我希望这个登录表单被关闭,如果用户输入错误的密码3次。

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

int loginAttempts = 0;

当登录错误时,我使用:

loginAttempts++;

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

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

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

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

您正在关闭您创建的logf实例,甚至没有显示。我认为你需要关闭当前表单:

login_bt_Enter(object sender, EventArgs e)
{
    if (loginAttempts == 3)            
        Close(); // simply close current form            
} 

问题:您正在创建登录表单的新实例,然后关闭。

解决方案:您需要关闭已经存在/打开的登录表单。

,因此您需要使用inf Application.OpenForms[]

获取已经打开的登录表单

试试这个:

if (loginAttempts == 3)
{
  login form = (login) Application.OpenForms["login"];
  form.Close();
}

不创建实例,直接关闭当前表单:

if (loginAttempts == 3)
{
    this.Close();
}

从0开始,在==3处检查将允许4次尝试