2014-01-27 4 views
-1

У меня есть 3 текстовое полеКак обрабатывать целое текстовое поле со значением 0

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); 
    } 

Так что если пользователь делает пустым он бросает message.Here нет никаких проблем

Но в случае пользователя, это ввести год, как 12 и введите 0 для как месяц, так и возраст. Он показывает erro для месяца и дня, когда пользователю нужно ввести значение. Если пользователь может ввести 0, он не должен вызывать ошибку.

+0

TextBox содержит строки не целые, какой тип данных user_age_year и друзей? – Steve

+0

целочисленный тип данных – Domnic

+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(); 
} 
0

Вы можете использовать RangeValidator для каждого из TextBox es.

+0

Нет, фактически, я использую отдельную структуру (третью сторону), которую я использовал для проверки. – Domnic

0

Использование RangeValidator, как было предложено ранее, было бы лучшей идеей, а не написанием большого количества кода. будет сложно поддерживать код в долгосрочной перспективе.

Смежные вопросы