Проверка, ввел ли пользователь действительное число в текстовое поле - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь сделать так, чтобы, когда пользователь вводит число ниже нуля или строку, фон текстового поля меняется на красный. Если они вводят число, большее или равное 0, тогда текстовое поле остается того же белого цвета. Он будет красным, пока пользователь не введет правильное целое число. Я также хочу, чтобы число сохранялось в переменной. Я написал код ниже, но это смесь кода, которую я использую в программах cmd, поэтому не уверен, как это делается в WPF.

 _heightVal = 0;

private void TxtFeetInput_TextChanged(object sender, TextChangedEventArgs e)
        {

            _heightVal = double.Parse(txtFeetInput.Text);

            if (heightVal = "")/*any string*/
            {
                textBox1.Background = Brushes.Red;
            }
            else if (_heightVal < 0)
            {
                textBox1.Background = Brushes.Red;
            }
            else
            {
                textBox1.Background = Brushes.White;
            }
        }

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Попробуйте следующее:

double i = 0;  
string s = txtFeetInput.Text;
bool result = double.TryParse(s, out i);

if(result && i >= 0){
    textBox1.Background = Brushes.White;
}else{
    textBox1.Background = Brushes.Red;
}
0 голосов
/ 17 апреля 2019

Вы можете использовать следующее.

 private void TxtFeetInput_TextChanged(object sender, TextChangedEventArgs e)
 {
    if (string.IsNullOrEmpty(txtFeetInput.Text))
    {
       textBox1.Background = Brushes.White;
       return;
    }
    textBox1.Background = double.TryParse(txtFeetInput.Text, out var value) 
                                     && value >= 0? 
                                     Brushes.White : Brushes.Red;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...