【发布时间】:2019-04-15 17:59:34
【问题描述】:
所以,我必须编写一个方法来验证保存名称的字符串是否只包含字母,不包含数字。当用户在提交表单之前通过 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();
}
}
【问题讨论】:
-
您使用的是什么用户界面? WinForms、WPF、UWP 或 ASP.NET MVC?
-
看起来像给定事件的网络表单。
-
不要设置
Enabled,而是尝试更改颜色 -
下一步是设置 label4.text = "";之后calculate_salary.enable = true;
-
@Uyur99 尝试将标签值设置为:
label4.Text = string.empty;或者您可以将可见性设置为 false:label4.Visible = false;