2015-12-23 3 views
0

У меня есть пользовательский интерфейс, в котором у меня есть текстовое поле (smartTextBox5), где я должен ввести значение. Приложение должно что-то сделать, если значение> 1 и что-то еще, если оно меньше.Как проверить, нет ли текстового поля

Это мой код:

double nInterval; 

nInterval = double.Parse(smartTextBox5.Value); 

if (nInterval > 1) 
{ 
//do something 

} 
else 
{ 
//do something else 
} 

Он отлично работает, если я ввести некоторые значения, но он выходит из строя, если я позволю текстовое поле без какого-либо значения или если ввести в текстовое поле только минус (-).

Любые идеи?

+0

Если вам нужно проверить строковое значение, используйте строку.IsNullOrWhitespace(). Чтобы избежать исключения здесь, вы можете использовать метод double.TryParse(). Итак, подведем итоги. Если вам нужно проверить, является ли значение действительным двойным, используйте метод TryParse. Если вам нужно проверить, имеет ли текстовый текст какой-либо текст, используйте свойство string.IsNullOrWhiteSpace() в свойстве smartTxtBox.Value. double.TryParse() вернет false, даже если вы получили текст, который нельзя преобразовать в double. – Alex

ответ

1

Проверьте, строка является допустимым номером:

double nInterval; 
if (Double.TryParse(smartTextBox5.Value, out nInterval) 
{ 
    if (nInterval > 1) 
    { 
    //do something 

    } 
    else 
    { 
    //do something else 
    } 
} 
+1

Я сомневаюсь, что есть лучший способ сделать это. Я был неправ, я бы предпочел, чтобы версия @Dovydas Sopa уменьшала вложенность. – Perfection

+0

эти 2 ответа не дают одинакового результата, идея такая же, но поведение отличается – slawekwin

2

Ваше значение должно быть число? Вы можете использовать любой тип (int, double, long и т. Д.) В зависимости от ваших потребностей.

int value; 
if (int.TryParse(smartTextBox5.Value, out value) && 1 < value) { 
    // Valid number. 
} else { 
    // Invalid number. 
} 
1

Вы можете использовать Double.TryParse(), этот метод даст True обратно, если преобразование прошло успешно и False если нет. В вашем случае он вернет False, если значение TextBox пустое или недопустимый символ, например «-».
Дополнительную информацию см. На странице MSDN documentation.

if (Double.TryParse(smartTextBox5.Value, out nInterval)) 
{ 
    if(nInterval > 1) 
     . 
     . 
     . 
} 
Смежные вопросы