проверить текстовое поле - сравнение двух значений текстового поля - PullRequest
0 голосов
/ 13 мая 2019

Когда я ввожу значение в текстовое поле TxtAdvance, если оно выше, чем значение в поле TxtAssessedVal, программа должна отобразить сообщение об ошибке.

 private void TxtAdvance_Validating(object sender, System.ComponentModel.CancelEventArgs e)
 {
       if (float.Parse(TxtAssessedVal.Text) <= float.Parse(TxtAdvance.Text)) 
       {                               
             MessageBox.Show("Advance value shold be less than Assessed value .!", 
                             "Error", 
                              MessageBoxButtons.OK, 
                              MessageBoxIcon.Error);

             TxtAdvance.Focus();
             return;
       }
 }

Но когда я ввел 90000 для значения "аванс" и 89600 для "оцененного" значения, ошибка не показалась.

1 Ответ

0 голосов
/ 13 мая 2019

90000 больше 89600, поэтому ожидаемое поведение того, что вы написали, заключается в том, что оно не должно отображать ошибку. Ваш код будет выглядеть так: if (89600 >= 90000) { MessageBox.Show //etc..... Другими словами, это означает «Если 89600 больше или равно 9000, то показать ошибку». Ясно, что 89600 не больше или равно 9000, поэтому сообщение не отображается.

Я думаю, вы просто перепутали "больше чем" с "меньше чем". Попробуйте с <= вместо >=:

if (float.Parse(TxtAssessedVal.Text) <= float.Parse(TxtAdvance.Text))

Или, если вы предпочитаете сделать код более похожим на ваше требование, то поменяйте местами текстовые поля вместо:

if (float.Parse(TxtAdvance.Text) >= float.Parse(TxtAssessedVal.Text))

P.S. Ваше требование также говорит «если оно выше», но не упоминает «или равно». Поэтому, возможно, вам также необходимо удалить =, так как в этом случае, если оба значения (например) 90000, появится сообщение об ошибке. Так что на самом деле, возможно, код должен быть:

if (float.Parse(TxtAdvance.Text) > float.Parse(TxtAssessedVal.Text))

вместо.


P.P.S. Я рекомендовал вам прочитать документацию https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/comparison-operators и убедиться, что вы четко понимаете значение каждого символа оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...