2016-05-08 249 views
0

我在驗證用戶在我的文本框中輸入時遇到了一些麻煩,但我一直無法找到解決方案。Visual Basic驗證文本框輸入

基本上,該程序是一個BMI計算器,我試圖驗證用戶輸入「性別」,「身高」和「體重」,當用戶選擇「計算」按鈕。下面是我的代碼至今:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button5.Click 
    Dim userBMI As BMI 
    userBMI.gender = TextBox1.Text 
    userBMI.height = TextBox2.Text 
    userBMI.weight = TextBox3.Text 
    calculatedBMI = (userBMI.weight/userBMI.height)/userBMI.height 
    calculatedBmiLbl.Text = calculatedBMI.ToString("n1") 
End Sub 

我需要驗證這些投入的原因是因爲例如,如果用戶輸入一個字符串,或者什麼都沒有的「高度」輸入,計算將不工作,因此該計劃將打破。我曾考慮過使用某種形式的布爾變量來解決這個問題,但我不太瞭解如何做到這一點。

如果任何人都可以借給我一些很棒的幫助,如果有人知道更簡單的方法來實現輸入驗證,它並不一定是布爾值,這正是我所想的,謝謝:

+0

使用[**'Integer.TryParse()'* *](https://msdn.microsoft.com/en-us/library/f02979c7(v = vs.110).aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-1)on all必要的文本框,不需要循環。如果其中一個'TryParse()'檢查返回False,那麼你可以向用戶顯示一個MessageBox,之後放置'Return'來不執行其餘的代碼。 –

+0

在玩了一番之後,我想我可以弄明白,如果任何人有一種方法可以根據IF語句等標準取消按鈕? –

+0

哦哇完美大聲笑,只要我發表評論你的出現哈哈。感謝Visual Vincent我很感激它:D –

回答

0

以下是用於檢查輸入是否已輸入的驗證示例。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button5.Click 
    If Len(Trim(TextBox1.Text)) = 0 Then 
     MsgBox("Enter Gender", MsgBoxStyle.Exclamation) 
     TextBox1.Focus() 
    ElseIf Len(Trim(TextBox2.Text)) = 0 Then 
     MsgBox("Enter Height", MsgBoxStyle.Exclamation) 
     TextBox2.Focus() 
    ElseIf Len(Trim(TextBox3.Text)) = 0 Then 
     MsgBox("Enter Weight", MsgBoxStyle.Exclamation) 
     TextBox3.Focus() 
    Else 
     Dim userBMI As BMI 
     userBMI.gender = TextBox1.Text 
     userBMI.height = TextBox2.Text 
     userBMI.weight = TextBox3.Text 
     calculatedBMI = (userBMI.weight/userBMI.height)/userBMI.height 
     calculatedBmiLbl.Text = calculatedBMI.ToString("n1") 
    End If 
End Sub 
0

嘗試則IsNumeric檢查輸入的文字是數值或不

If(IsNumeric(TextBox2.Text) ANDALSO IsNumeric(TextBox3.Text)) 
    Dim userBMI As BMI 
    userBMI.gender = TextBox1.Text 
    userBMI.height = TextBox2.Text 
    userBMI.weight = TextBox3.Text 

    calculatedBMI = (userBMI.weight/userBMI.height)/userBMI.height 
    calculatedBmiLbl.Text = calculatedBMI.ToString("n1") 
Else 
calculatedBmiLbl.Text = "" 
END IF 

或者使用纈氨酸()方法

If(Val(TextBox2.Text)>0 ANDALSO Val(TextBox3.Text)>0) 
    Dim userBMI As BMI 
    userBMI.gender = TextBox1.Text 
    userBMI.height = TextBox2.Text 
    userBMI.weight = TextBox3.Text 

    calculatedBMI = (userBMI.weight/userBMI.height)/userBMI.height 
    calculatedBmiLbl.Text = calculatedBMI.ToString("n1") 
Else 
calculatedBmiLbl.Text = "" 
END IF