2014-01-17 3 views
0

Я использовал inputbox в своем приложении vb.net2008 для приема количества для определенного продукта, я хочу дать числовую проверку для этого ввода. Символы (a-z) не должны быть введены в это поле ввода, то же самое, что мы делаем в событии textbox_keypress. Пожалуйста, помогитеInputBox Числовая проверка в vb.net

+0

Вы спрашиваете о WinForm или веб-формы –

+0

@Vighnesh Кумар: Windows Форма – Omkar

+0

Рассматривали ли вы создать свой собственный UserControl или функцию, чтобы имитировать InputBox? По-моему, входной ящик по умолчанию выглядит очень непрофессиональным. –

ответ

0

проверить это ...

http://www.functionx.com/vb/functions/inputbox.htm

Только то, что я думал. Он говорит, что в поле ввода нет фильтрующих событий, на которые вы можете подписаться. Итак, мое предложение, у вас есть 2 варианта ... Создайте свой собственный ящик ввода и подпишитесь на событие нажатия клавиши ввода текста для фильтрации данных или сначала введите данные в поле ввода и подтвердите данные после их ввода, если вы настаиваете на использовании поле ввода. Это ваши единственные варианты.

+0

Спасибо @ chris_techno25! Это сработало для меня :-) – Omkar

+0

Happy to help @OmkarPawar :) –

0

По умолчанию InputBox не предоставляет эту функцию проверки при вводе текста. Вы должны создать окно (поле ввода) самостоятельно и добавить проверку вы хотите

Самого лучший вариант, чтобы создать новую форму со всей проверкой для этого текстового поля вы хотите, и показать его с .ShowDialog() модальными как InputBox

0

Я понимаю, что на это уже был дан ответ, но в качестве примера не так много было сказано. Недавно я столкнулся с подобной проблемой, пытаясь проверить InputBox только на числовой ввод.

Это то, что я придумал, в отношении приложения сбора статистики осадков.

Петля собирает количество осадков за каждый месяц. Я передаю вход пользователя сначала в строку, затем проверив строку, используя IsNumeric, перед преобразованием в double и присвоением ее текущему индексу в массиве.

Если ввод является числовым, он увеличивает счетчик циклов для перехода к следующему месяцу.

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

Private Sub ... 

    Dim intMaxIndex As Integer = 11 
    Dim strMonths() As String = {"January", "February", "March", "April", "May", "June", 
           "July", "August", "September", "October", "November", "December"} 

    ' declare local array and counter 
    Dim dblRainfallPerMonth(intMaxIndex) As Double 
    Dim i As Integer = 0 

    ' loop through the months 
    Do Until i = intMaxIndex 
     Dim strRainfall As String = "" 
     ' get user input from InputBox and assign to a string 
     strRainfall = InputBox("Enter the rainfall for " & strMonths(i)) 
     ' check if the user input is a number 
     If IsNumeric(strRainfall) Then 
      ' validation passed, convert user input and assign to current index in the array 
      dblRainfallPerMonth(i) = CDbl(strRainfall) 
      ' increment the counter 
      i += 1 
     Else 
      ' validation failed, display error and do not increment the counter 
      MessageBox.Show("Please enter a number") 
     End If 
     Loop 

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