2016-02-26 2 views
-1

Я не могу получить следующий код vb.net. То, что я пытаюсь добиться, - это ограничить числа, используемые между 3 и 6 и включительно, если пользовательская доза вводит значение меньше 3, чтобы текстовое поле корректировало значение до 3, и если пользователь вводит значение больше 6, значение текстового поля изменяется на 6 ...Автокоррекция ввода текстового поля (код vb.net)

Select Case e.KeyChar 
    Case "3", "4", "5", "6", vbBack 
     e.Handled = False 
    Case Else 
     e.Handled = True 
     If TextBox27.Text <= 2 Then 
      MessageBox.Show("Minimum of 3 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "3" 
      TextBox27.Focus() 
     ElseIf TextBox27.Text >= 7 Then 
      'Shows error message... 
      MessageBox.Show("Maximum of 6 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "6" 
      TextBox27.Focus() 
     End If 

End Select 

ответ

1

Некоторая информация по этой проблеме была бы полезна. Вы получаете исключение? Я думаю, что вам нужны некоторые цитаты вокруг 2 и 7. Кроме того, текстовые сравнения (то есть TextBox27.Text <= "2") могут быть обмануты в зависимости от другого кода в вашем приложении.

Select Case e.KeyChar 
    Case "3", "4", "5", "6", vbBack 
     e.Handled = False 
    Case Else 
     e.Handled = True 
     If TextBox27.Text <= "2" Then 
      MessageBox.Show("Minimum of 3 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "3" 
      TextBox27.Focus() 
     ElseIf TextBox27.Text >= "7" Then 
      'Shows error message... 
      MessageBox.Show("Maximum of 6 loads permissible", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      TextBox27.Text = "6" 
      TextBox27.Focus() 
     End If 

End Select 
+0

да пробовал, но я до сих пор та же проблема, если я типа 1 или 2 в текстовом поле реагирует, как ожидалось ... Но если я типа в чем-нибудь lagrger чем 6 texbox доза не отвечает .. –

+0

Это потому, что ' TextBox27.Text> = "7" 'никогда не будет True. Коробка принимает только символы, которые меньше 7. Сравнение текста, которое вы делаете, оценивает в алфавитном порядке. Возможно, вам нужно преобразовать TextBox27.Text в целое число, а затем сравнить с 7 (без кавычек. – JerryM

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