Код требует от вас всплывающего сообщения об ошибке, если оно больше 1, меньше 50? - PullRequest
0 голосов
/ 03 ноября 2010

Мне нужно, чтобы программа отображала ошибку, если термин, который пользователь вводит, меньше 50 или больше единицы, поэтому любое промежуточное значение является ошибкой.Пользователь должен ввести 50+ или 0, чтобы не получить ошибку.Я был почти уверен, что это сработало, пока я не посмотрел на проект ближе.Я получаю сообщение об ошибке при вводе любого числа.

    Const strMSG As String = "The term must be less than 1 or greater than 50."
    Const strMSG2 As String = "The term must be less than 1 or greater than 50."

    txtOwed.Text = FormatCurrency(txtRegistrants.Text * 80)
    If txtOwed.Text > 50 Then
        txtOwed.Text = txtOwed.Text
    Else
        MessageBox.Show(strMSG, "Monthly Payment Calculator", _
                        MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If

    If txtOwed.Text < 1 Then
        txtOwed.Text = txtOwed.Text
    Else
        MessageBox.Show(strMSG2, "Monthly Payment Calculator", _
                        MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010

Измените свой код на следующий:

If val(txtOwed.Text) > 1 and val(txtOwed.Text) < 50 Then
  MessageBox.Show(strMSG, "Monthly Payment Calculator", _
                    MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

Обратите внимание, что я решил для вашей темы, а не для вашего словосочетания и примера кода

0 голосов
/ 03 ноября 2010

Я думаю, что это проще всего понять большинству людей:

If not(txtOwed.Text > 50 or txtOwed.text = 0) Then
    MessageBox.Show(strMSG, "Monthly Payment Calculator", _
                    MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

, но

not(txtOwed.Text > 50 or txtOwed.text = 0)

эквивалентно

(txtOwed.Text <= 50 and txtOwed.text <> 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...