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

时间:2018-12-18 13:52:28

标签: c#

我需要帮助,以允许输入的文本框数据仅在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);

2 个答案:

答案 0 :(得分:1)

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

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

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

    return true;
}

以下是我如何通过控制台应用程序对其进行测试的屏幕截图:

enter image description here

答案 1 :(得分:0)

            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'))
                {
                    LstFinalB.Items.Add(TxtCoach.Text);
                }
                else
                {
                    throw new ArgumentException("Correct your coach is valid!");
                }
            }
            catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message);
            }

您的If语句逻辑是错误的,并且您永远不会输入正确的信息,并且Listbox.Items.Add(Item)也位于错误的位置。