2014-01-17 22 views
0

我已經在我的vb.net2008應用程序中使用inputbox來接受特定產品的數量,我想給這個輸入框提供數字驗證。字符(a-z)不能輸入到此輸入框中,這與我們在textbox_keypress事件中執行的操作相同。請幫助InputBox在vb.net中的數字驗證

+0

你問的winform或網頁形式 –

+0

@Vighnesh庫馬爾:Windows窗體 – Omkar

+0

你有沒有考慮創建自己的用戶控件或函數來模擬輸入框?在我看來,默認的輸入框看起來非常不專業。 –

回答

0

檢查了這一點...

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

只是我的想法。它說輸入框沒有你可以訂閱的過濾事件。因此,我的建議是,您有兩個選項...您可以創建自己的輸入框並訂閱textbox keypress事件以過濾數據,或讓用戶首先將數據輸入到輸入框中,並在數據輸入後驗證數據,如果您堅持使用輸入框。這些是你唯一的選擇。

+0

Thanks @ chris_techno25!這對我有效:-) – Omkar

+0

樂意幫忙@OmkarPawar :) –

0

輸入文本時,默認的InputBox不提供此驗證功能。你必須創建一個窗口(輸入框)自己,並添加你想要

最好的選擇是創建一個新的形式的所有驗證你想要的 文本框,並顯示它與.ShowDialog()是模態驗證喜歡的InputBox

0

我意識到這已被回答,但沒有太多的例子給出。我最近遇到了一個類似的問題,試圖驗證InputBox僅用於數字輸入。

這就是我想到的,關於降雨統計收集應用程序。

循環將收集每個月的降雨量。 我首先將用戶輸入傳遞給一個字符串,然後在轉換爲double並將其分配給數組中的當前索引之前,使用IsNumeric驗證該字符串。

如果輸入是數字,則遞增循環計數器以移至下個月。

如果不是數字,它將顯示一個錯誤並再次循環詢問相同的月份輸入。

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