验证两个文本框(C#)

时间:2017-03-11 14:24:40

标签: c# visual-studio-2015 uwp windows-10

我有两个文本框,提示用户在每个文本框中输入一个整数。我已经完成了所有代码(代码验证texbox是否为空,如果只输入整数,以及第二个texbox中插入的数字是否大于第一个texbox中输入的数字。 我在这里留下一个简单的代码示例(我已经完成了所有代码):

private async void generate_Click(object sender, RoutedEventArgs e)
{
    if (String.IsNullOrWhiteSpace(min.Text) || String.IsNullOrWhiteSpace(max.Text))
    {
        // I already have the code done ...
        // error message
    }    
    else
    { 
        // I already have the code done ...
        // Here it does the operation with the two numbers entered
    }
}

private async void min_TextChanged(object sender, TextChangedEventArgs e)
{
    if (System.Text.RegularExpressions.Regex.IsMatch(min.Text, "[^0-9]"))
    {
        // I already have the code done ...
        // error message
    }

}

private async void max_TextChanged(object sender, TextChangedEventArgs e)
{
    if (System.Text.RegularExpressions.Regex.IsMatch(max.Text, "[^0-9]"))
    {
        // I already have the code done ...
        // error message
    }
}

我只有一个问题:我在哪里放置代码(我已完成此代码)以验证在第二个文本框中输入的数字是否大于在第一个texbox中输入的数字?这是我的问题。

更新:我只是想知道我把代码放在哪里:

if (maxValue < minValue) 
{ 
     // I already have the code done ... 
     // error message 
}

2 个答案:

答案 0 :(得分:1)

在函数中封装所有这些验证逻辑,返回一个bool

private bool IsValid ()
{
 if (String.IsNullOrWhiteSpace(min.Text) || String.IsNullOrWhiteSpace(max.Text))
    {
       // return false any where the input is not valid
    }    

}

然后在“按钮”中使用if语句单击“事件处理程序”

if (IsValid())
{
   //Code To Check If Max is Bigger Than min
}

这种方式可以轻松调用IsVaild函数来检查空字符串 如果你要使用它,你还可以封装逻辑以验证另一个函数中的更大数字

希望我完全理解你

答案 1 :(得分:0)

如果您的混淆只是放置在第二个文本框中输入的数字的验证码大于第一个文本框中输入的数字,您可以在按钮单击后查看。这是样本:

        private async void generate_Click(object sender, RoutedEventArgs e)
        {
            if (String.IsNullOrWhiteSpace(min.Text) || String.IsNullOrWhiteSpace(max.Text))
            {
                await new MessageDialog("Text boxes cannot be empty").ShowAsync();
                return;
            }
            if (Convert.ToInt32(max.Text) < Convert.ToInt32(min.Text))
            {
                await new MessageDialog("1st one is bigger").ShowAsync();
                //you may do as you want, showing a message box is just a sample
            }
            else
            {
                await new MessageDialog("2nd one is bigger").ShowAsync();
                //you may do as you want, showing a message box is just a sample
            }
        }

为了澄清onTextChanged事件可能是这样的:

        private async void min_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(min.Text, "[^0-9]") )
            {
                await new MessageDialog("Enter numbers only.").ShowAsync();
                //you may do as you want, showing a message box is just a sample
            }

        }
        private async void max_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(max.Text, "[^0-9]"))
            {
                await new MessageDialog("Enter numbers only.").ShowAsync();
                //you may do as you want, showing a message box is just a sample
            }

        }

所以这里的摘要是,如果文本框为空,它将显示警告并返回。在用户完成输入数字并按下按钮后,它将检查哪个数字更大。如果用户提供输入而不是数字,也会显示警告。希望这可以帮到你。