如何处理值为0的整数文本框

时间:2014-01-27 10:28:15

标签: c#

我有3个文本框

1,年龄(年), 2,年龄(月) 3,年龄(天))

默认情况下,所有3个texbox值都是0(整数),这意味着分配给每个控件的对象保持值为0.

  ibusCalcWiz.icdoCalcWiz.user_age_month =0

  ibusCalcWiz.icdoCalcWiz.user_age_year=0

  ibusCalcWiz.icdoCalcWiz.user_age_Day=0

现在我需要验证用户是否填空了这些文本框。

所以我做的是

   public bool IsUserAgeYearisNull()
    {
        return (ibusCalcWiz.icdoCalcWiz.user_age_year <= 0);
    }
 public bool IsUserAgeMonthisNull()
    {
        return (ibusCalcWiz.icdoCalcWiz.user_age_month <= 0);
    }

  public bool IsUserAgeDayisNull()
    {
        return (ibusCalcWiz.icdoCalcWiz.user_age_day <= 0);
    }

因此,如果用户为空,则会抛出一条消息。这里没有问题

但是如果用户输入年份为12并且输入0表示月份和年龄。它显示用户需要输入值的月份和日期的错误。用户可以输入0但不应该输入错误。

3 个答案:

答案 0 :(得分:1)

需要检查所有功能中的所有条件。

public bool IsUserAgeYearisNull()
{
    if (ibusCalcWiz.icdoCalcWiz.user_age_month == 0 && ibusCalcWiz.icdoCalcWiz.user_age_day == 0)
        return (ibusCalcWiz.icdoCalcWiz.user_age_year <= 0);
    else
        return true;
}
public bool IsUserAgeMonthisNull()
{
    if (ibusCalcWiz.icdoCalcWiz.user_age_year == 0 && ibusCalcWiz.icdoCalcWiz.user_age_day == 0)
        return (ibusCalcWiz.icdoCalcWiz.user_age_month <= 0);
    else
        return true
}

public bool IsUserAgeDayisNull()
{
    if (ibusCalcWiz.icdoCalcWiz.user_age_year == 0 && ibusCalcWiz.icdoCalcWiz.user_age_month == 0)
        return (ibusCalcWiz.icdoCalcWiz.user_age_day <= 0);
    else
        return true;
}

您还可以创建一个通用功能。

public bool isValid()
{
    return (busCalcWiz.icdoCalcWiz.user_age_year > 0 || 
           ibusCalcWiz.icdoCalcWiz.user_age_month > 0 ||
           ibusCalcWiz.icdoCalcWiz.user_age_day > 0);
}

并从所有功能调用。喜欢:

public bool IsUserAgeDayisNull()
{
    return isValid();
}

答案 1 :(得分:0)

您可以为RangeValidator es。

中的每一个使用TextBox

答案 2 :(得分:0)

如前所述使用RangeValidator是一个更好的主意,而不是编写大量代码。从长远来看,很难维护代码。