将文本框传递到空白
本文关键字:空白 文本 | 更新日期: 2023-09-27 17:59:00
我不确定我是否使用了错误的术语,这可能是我的搜索没有找到任何结果的原因。
我有一堆文本框,我想验证并检查它们是否不包含撇号。我的代码是:
public void apostropheCheck(TextBox fieldName)
{
Match m = Regex.Match(fieldName.Text, @"'");
if (m.Success)
{
validationErrorProvider.SetError(fieldName, "Field can not contain apostrophes");
}
else if (!m.Success)
{
validationErrorProvider.SetError(fieldName, "");
}
}
文本框上的验证为:
private void FirstNameTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
//Checks for apostrophes
apostropheCheck(FirstNameTextBox);
}
然而,当我运行此操作时,传递到void的值是文本框中的文本(例如"John"或"Mary")。我可以使用每个验证事件的void中的代码来实现此操作,但这会重复很多次。有更好的方法吗?
您可以有一个通用处理程序,并将其用于所有文本框的Validating
事件。
private void CommonTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
//Checks for apostrophes
apostropheCheck((TextBox)sender);
}
事件的发送方对象是一个TextBox,因此您可以将其强制转换为一个文本框,并对应用程序中的所有文本框重复相同的事件处理程序
private void FirstNameTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
apostropheCheck(((TextBox)sender).Text);
}
-
术语:您将函数
apostropheCheck
称为void,这是其返回类型。标准方法是使用函数名称撇号Check。 -
如果您将代码中文本框的名称替换为发件人(例如),则所有文本框都可以使用相同的功能进行验证
private void FirstNameTextBox_Validing(对象发送方,System.ComponentModel.CancelEventArgs e){//检查撇号撇号检查((TextBox)发件人);}