C# C Visual Studio验证,因此文本框仅允许A-H之间的值

C# C Visual Studio验证,因此文本框仅允许A-H之间的值,c#,C#,我需要帮助,允许我输入的文本框数据仅在A-H之间的字段中,然后显示到列表框中。这是我到目前为止的代码,谢谢。我仍然可以选择A-H以外的字母,但无论选择哪个字母,我都会收到错误消息。我需要它,所以我只能选择A-H,如果我选择了任何超出该值的内容,它将显示一条错误消息 try { if (!this.TxtCoach.Text.Contains('A') || !this.TxtCoach.Text.Contains('B') || !this.TxtCoa

我需要帮助,允许我输入的文本框数据仅在A-H之间的字段中,然后显示到列表框中。这是我到目前为止的代码,谢谢。我仍然可以选择A-H以外的字母,但无论选择哪个字母,我都会收到错误消息。我需要它,所以我只能选择A-H,如果我选择了任何超出该值的内容,它将显示一条错误消息

try
{ 
    if (!this.TxtCoach.Text.Contains('A') ||
        !this.TxtCoach.Text.Contains('B') ||
        !this.TxtCoach.Text.Contains('C') || 
        !this.TxtCoach.Text.Contains('D') || 
        !this.TxtCoach.Text.Contains('E') || 
        !this.TxtCoach.Text.Contains('F') || 
        !this.TxtCoach.Text.Contains('G') || 
        !this.TxtCoach.Text.Contains('H'))
    {
        throw new ArgumentException("Correct your coach is valid!");
    }
}
catch (ArgumentException ex)
{
    MessageBox.Show(ex.Message);
}

LstFinalB.Items.Add(TxtCoach.Text);

If语句逻辑错误,您将永远无法获得正确的输入,并且Listbox.Items.AddItem也位于错误的位置。

您可以使用它来验证输入框中输入的数据

public bool IsAccepted(String textToValidate)
{
    Regex strPattern = new Regex("^[a-hA-H]*$");

    if (!strPattern.IsMatch(textToValidate))
    {
        return false;
    }

    return true;
}
下面是我如何通过控制台应用程序测试它的屏幕截图:


您的代码是否有问题?如果您没有得到期望的结果,请告诉我们您遇到的问题以及您认为应该采取的措施,以便获得帮助。抱歉,已更新。除非文本框包含A和H之间的所有字母,否则您的If为true。请检查您的布尔逻辑。您还始终将文本添加到列表框。此外,您始终添加文本,因为这发生在try-catch之后。换句话说,任何抛出的错误都不会阻止该部分的执行。请在此处使用正则表达式以获得所需的结果。这应该只允许大写和小写字符a-h^[a-hA-H]*$
public bool IsAccepted(String textToValidate)
{
    Regex strPattern = new Regex("^[a-hA-H]*$");

    if (!strPattern.IsMatch(textToValidate))
    {
        return false;
    }

    return true;
}