gpt4 book ai didi

c# - 停止 TextChanged 事件触发 Leave 事件

转载 作者:行者123 更新时间:2023-11-30 22:35:09 27 4
gpt4 key购买 nike

我正在为一所公立学校开发一个简单的 WinForms 应用程序,用户可以通过输入他们的网络 ID(不受保护的信息)或他们的系统 ID( protected 信息)。当程序检测到系统 ID(工作正常)时,我想切换到密码字符;但是,当我这样做时,我的应用程序还会触发文本框的 Leave 事件,该事件会告诉用户修复登录数据的问题……甚至在出现问题之前。

这是我的代码:

void login_TextChanged(object sender, EventArgs e)
{
login.UseSystemPasswordChar = login.Text.StartsWith(<prefix-goes-here>);
}

private void login_Leave(object sender, EventArgs e)
{
if (login.Text.StartsWith(<prefix-goes-here>) && login.Text.Length != 9)
{
signInError.SetError(login, "Your System ID must be nine digits.");
login.BackColor = Color.LightPink;
}
else if (login.Text.IsNullOrWhiteSpace())
{
signInError.SetError(login, "Please enter your username or System ID.");
login.BackColor = Color.LightPink;
}
else
{
signInError.SetError(login, string.Empty);
login.BackColor = Color.White;
}
}

最终,我不知道这会导致大量问题,我可以将此验证步骤移至表单上登录按钮的 Click 事件,但我会如果可能,宁愿逐个验证。

最佳答案

将 TextBox 放在 GroupBox 中确实会重现该行为——这很奇怪。

如果您想保留您的 GroupBox,这里有一个解决方法:

private void login_TextChanged(object sender, EventArgs e)
{
login.Leave -= login_Leave;
login.UseSystemPasswordChar = login.Text.StartsWith(<prefix-goes-here>);
login.Leave += login_Leave;
}

关于c# - 停止 TextChanged 事件触发 Leave 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7519175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com