C# 将文本框传递到空框

C# 将文本框传递到空框,c#,textbox,C#,Textbox,我不确定我是否使用了错误的术语,这可能就是为什么我的搜索没有找到任何结果 我有一堆文本框,我想验证并检查它们是否不包含撇号。我拥有的代码是: public void apostropheCheck(TextBox fieldName) { Match m = Regex.Match(fieldName.Text, @"'"); if (m.Success) { validationErrorProvider.SetError(fieldName, "Fi

我不确定我是否使用了错误的术语,这可能就是为什么我的搜索没有找到任何结果

我有一堆文本框,我想验证并检查它们是否不包含撇号。我拥有的代码是:

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中的代码来实现此功能,但这会重复我自己很多次。有更好的方法吗?

您可以使用一个公共处理程序,并将其用于所有文本框的
验证事件

private void CommonTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
    //Checks for apostrophes
    apostropheCheck((TextBox)sender);
}

您可以有一个公共处理程序,并将其用于所有文本框的验证事件

private void CommonTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
    //Checks for apostrophes
    apostropheCheck((TextBox)sender);
}

事件的发送者对象是文本框,因此您可以将其强制转换为文本框,并对应用程序中的所有文本框重复相同的事件处理程序

private void FirstNameTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
    apostropheCheck(((TextBox)sender).Text);
}

事件的发送者对象是文本框,因此您可以将其强制转换为文本框,并对应用程序中的所有文本框重复相同的事件处理程序

private void FirstNameTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
    apostropheCheck(((TextBox)sender).Text);
}
  • 术语:您指的是函数
    撇号检查
    作为其返回类型的void。标准方法是使用函数名撇号检查

  • 如果将代码中文本框的名称替换为sender ex,则可以使用相同的函数验证所有文本框

  • 私有void FirstNameTextBox_验证(对象发送方,System.ComponentModel.CancelEventArgs e) { //检查撇号 撇号检查((文本框)发送方); }
  • 术语:您指的是函数
    撇号检查
    作为其返回类型的void。标准方法是使用函数名撇号检查

  • 如果将代码中文本框的名称替换为sender ex,则可以使用相同的函数验证所有文本框

  • 私有void FirstNameTextBox_验证(对象发送方,System.ComponentModel.CancelEventArgs e) { //检查撇号 撇号检查((文本框)发送方); }
    你能重新表述一下你所说的“进入虚空”是什么意思吗?这对我来说真的毫无意义,我也看不出有任何其他方式来解释你的意思。我想你可能把你的术语弄混了。空白是一种类型。给它传递任何东西都没有意义。也许你指的是函数?在这种情况下,您在帖子中提到了两个这样的功能。你指的是哪一个?你所谓的
    void
    实际上被称为
    方法
    void
    仅表示
    方法
    不返回任何值。感谢所有人纠正了我的术语(我只是在学习,虽然我知道我想做什么,但我并不总是知道它的名称或如何表达)。你能重新表述一下“传递到void”的意思吗这对我来说真的毫无意义,我也看不出有任何其他方式来解释你的意思,我想你可能把你的术语弄混了。空白是一种类型。给它传递任何东西都没有意义。也许你指的是函数?在这种情况下,您在帖子中提到了两个这样的功能。你指的是哪一个?你所谓的
    void
    实际上被称为
    方法
    void
    仅表示
    方法
    不返回任何值。感谢所有人更正了我的术语(我只是在学习,虽然我知道我想做什么,但我并不总是知道它叫什么或如何表达)。非常感谢,我想这就是我需要的答案,虽然有一个验证事件是一个好主意,但一些文本框会首先验证其他内容,并且只有在其他内容没有错误时才检查撇号(如果撇号检查在第二次运行,则会消除第一次的错误,反之亦然)。非常感谢,我认为在这种情况下,这是我需要的答案,而有一个验证事件是一个好主意,一些文本框首先验证其他内容,只有在其他内容没有错误时才检查撇号(如果撇号检查在第二次运行,它将消除第一次的错误,反之亦然)。