c# - 如何在用户输入并显示错误消息时验证文本框值?

标签 c# winforms

因此,我必须编写一个方法来验证保存名称的字符串是否只包含字母,不包含数字。当用户在提交表单之前通过 textchanged 事件输入并在标签上显示红色错误消息时,应应用文本框值的验证。我的代码有效,但问题是当我在文本框中输入数字时,标签显示错误,即使我删除文本框值并输入字母字符串,该错误仍然存​​在。

我已经声明了一个将错误字符串分配给标签的方法,如果在文本更改事件期间正则表达式与文本框输入不匹配,则会调用该方法。

public void Validator()
{
    Calculate_Salary.Enabled = false;
    label4.Text = "Please enter only alphabetical letters";
}

private void _Name_TextChanged(object sender, EventArgs e)
{
    Regex pattern = new Regex("/^[A-Za-z]+$/");
    string name = _Name.Text;
    if (pattern.IsMatch(name))
    {
        Calculate_Salary.Enabled = true;
        label4.Text = "";

    }
    else
    {
        Validator();
    }
}     

GUI

最佳答案

在验证之前清除文本框:

public void Validator()
{
    Calculate_Salary.Enabled = false;
    label4.Text = "Please enter only alphabetical letters";
}
private void _Name_TextChanged(object sender, EventArgs e)
{
    label4.Text = "";
    Regex pattern = new Regex("/^[A-Za-z]+$/");
    string name = _Name.Text;
    if (pattern.IsMatch(name))
    {
        Calculate_Salary.Enabled = true;

    }
    else
    {
        Validator();
    }
}

关于c# - 如何在用户输入并显示错误消息时验证文本框值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55694881/

相关文章:

c# - 如何从 ComboBox C# Winforms 获取 ValueMember 值?

c# - 在 C# WinForm 中嵌入 Mappoint 2010 控件在 Win7(64 位)中创建注册表错误

c# - 可拖动的 WinForm 问题

c# - 如何处理庞大的参数列表?

c# - 在 Global.asax 中给定值的变量有时会返回错误的值

c# - AnyCpu 引用 x64 有效吗?

c# - DateTime.FromOADate 返回与 Excel 中的日期不同的日期

java - 抽象基类与作为父类(super class)型的具体类

.net - 如何在.net windows应用程序中实现 'undo'操作?

c# - 随机位置的字符