C# 如何在用户输入和显示错误消息时验证文本框值?
所以,我必须编写一个方法来验证保存名称的字符串是否只包含字母表,而不包含数字。当用户在提交表单之前通过textchanged事件输入文本框值并在标签上显示红色错误消息时,应应用文本框值验证。我的代码可以工作,但问题是,当我在文本框中输入数字时,即使删除文本框值并输入字母字符串,标签仍会显示错误 我声明了一个方法,该方法将错误字符串分配给标签,并且在文本更改事件期间,若正则表达式和文本框输入不匹配,则调用该方法C# 如何在用户输入和显示错误消息时验证文本框值?,c#,winforms,C#,Winforms,所以,我必须编写一个方法来验证保存名称的字符串是否只包含字母表,而不包含数字。当用户在提交表单之前通过textchanged事件输入文本框值并在标签上显示红色错误消息时,应应用文本框值验证。我的代码可以工作,但问题是,当我在文本框中输入数字时,即使删除文本框值并输入字母字符串,标签仍会显示错误 我声明了一个方法,该方法将错误字符串分配给标签,并且在文本更改事件期间,若正则表达式和文本框输入不匹配,则调用该方法 public void Validator() { Calculate_Sal
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();
}
}
验证之前,只需清除文本框即可:
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();
}
}
我更改了验证代码。它现在似乎起作用了
private void _Name_TextChanged(object sender, EventArgs e)
{
label4.Text = string.Empty;
string name = _Name.Text;
if (Regex.IsMatch(_Name.Text, "^[a-zA-Z]+$") || _Name.Text=="")
{
Calculate_Salary.Enabled = true;
}
else
{
Calculate_Salary.Enabled = false;
label4.Text = Validator();
}
}
您的
Regex
比较错误,请尝试以下代码:
public void Validator()
{
Calculate_Salary.Enabled = false;
label4.Text = "Please enter only alphabetical letters";
}
private void _Name_TextChanged(object sender, EventArgs e)
{
label4.Text = "";
string name = _Name.Text;
if (Regex.IsMatch(name, @"^[a-zA-Z]+$"))
Calculate_Salary.Enabled = true;
else
Validator();
}
你用的是什么用户界面?WinForms、WPF、UWP或ASP.NET MVC?看起来像给定事件的web表单。请尝试更改颜色,而不是将
设置为Enabled
,下一步是将label4.text设置为“”;计算后_salary.enable=true@Uyur99尝试将标签值设置为:label4.Text=string.empty
或者您可以将Visibility设置为false:label4.Visible=false代码>当文本框为空时,正则表达式(“/^[A-Za-z]+$/”)不匹配,因此它仍将显示en error。您需要添加一个选项,用于在文本框为空时计算_Salary.Enabled=false,但不显示错误