Visual Basic验证文本框输入

时间:2016-05-08 19:52:18

标签: vb.net validation input textbox

我在文本框中验证用户输入时遇到了一些问题,而我却找不到解决方案。

基本上,该程序是一个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

我需要验证这些输入的原因是因为,例如,如果用户输入一个字符串或根本没有输入" height"输入,计算将无法工作,因此程序将中断。我已经考虑过使用某种形式的布尔变量和一个循环来解决这个问题,但我对如何做到这一点并不是很了解。

如果有人能借给我一些很棒的帮助,如果有人知道更简单的方法来实现输入验证,它就不一定必须是布尔值,这正是我的想法关于,谢谢:

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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  

或使用Val()方法

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