You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现C#程序3次用户名密码输入错误后自动关闭的功能

现有代码的核心问题

  • 计数器i定义在button1_Click方法内部,每次点击按钮都会被重新初始化为0,永远无法累计到3次错误
  • 方法内部添加了无意义的while循环,单次点击按钮就会在循环里空转,不符合「每次点击按钮算一次尝试」的交互逻辑
  • 验证逻辑写错:当前用&&判断,只有用户名和密码同时错误才会计数,只要其中一项正确就算验证通过,不符合常规登录校验逻辑
  • 没有实现3次错误后的退出逻辑,也没有登录成功后终止计数的逻辑

修正后的实现方案

首先需要把计数器定义为窗体类的全局成员,避免每次点击被重置,再调整点击事件的校验逻辑:

// 以下代码写在窗体类内部、所有方法外部,作为类的全局成员
private int errorCount = 0;
private const string ValidUsername = "User";
private const string ValidPassword = "Password";

修改按钮点击事件逻辑:

private void button1_Click(object sender, EventArgs e)
{
    // 校验用户名密码是否正确
    if (textBoxUsername.Text == ValidUsername && textBoxPassword.Text == ValidPassword)
    {
        MessageBox.Show("登录成功");
        // 登录成功后重置计数器,也可以自行添加跳转页面等逻辑
        errorCount = 0;
        return;
    }

    // 校验失败,错误次数+1
    errorCount++;
    if (errorCount >= 3)
    {
        MessageBox.Show("3次输入均错误,程序即将退出");
        // 关闭当前程序
        Application.Exit();
        return;
    }

    // 剩余尝试次数提示,可选清空输入框优化体验
    MessageBox.Show($"用户名或密码错误,剩余尝试次数:{3 - errorCount}");
    textBoxUsername.Clear();
    textBoxPassword.Clear();
}

内容的提问来源于stack exchange,提问作者Poecyptes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:24:00