2013-12-09 52 views
0

我的年齡檢查不起作用,因此您可以輸入您想要的任何年齡,並且不會顯示錯誤並且不顯示消息框。它允許您輸入任何信息,並仍然繼續。有任何想法嗎?使用If語句停止加載下一個表格

Dim errorcount as Integer = 0 

Private Sub btnContinue_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContinue.Click 
    strName = txtName.Text 
    strAddress = rtfAddress.Text 
    strCity = txtCity.Text 
    strEmail = txtEmail.Text 
    strHomePhone = mtxtHomePhone.Text 
    strMobilePhone = mtxtMobilePhone.Text 
    If txtName.Text = "" Then 
     MessageBox.Show("You must enter full name", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    ElseIf IsNumeric(txtName.Text) Then 
     MessageBox.Show("Please enter a valid name", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    If txtAge.Text = "" Then 
     MessageBox.Show("You must enter your age", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    'Declaring age check 
    Dim AgeCheck As Boolean = False 
    If IsNumeric(txtAge.Text) = True Then 
     AgeCheck = True 
     'strAge = Integer.Parse(txtAge.Text) 
    ElseIf strAge < 18 Then 
     MessageBox.Show("You must be over 18 years old", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
    ElseIf strAge > 125 Then 
     MessageBox.Show("Don't be stupid. You're not that old.", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
    ElseIf AgeCheck = False Then 
     MessageBox.Show("You must enter a valid age", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     Exit Sub 
    End If 
    If Not IsNumeric(txtAge.Text) Then 
     MessageBox.Show("Please enter a vadid age", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
    End If 
    If IsNumeric(rtfAddress.Text) Or rtfAddress.Text = "" Then 
     MessageBox.Show("Please enter your address", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    If IsNumeric(txtCity.Text) Or txtCity.Text = "" Then 
     MessageBox.Show("Please enter your town/city", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    'if no index hasd been selected 
    If cmbCounty.SelectedItem = "" Then 
     MessageBox.Show("Please select a county", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    If Not mtxtHomePhone.MaskCompleted Then 
     MessageBox.Show("Please enter a valid home phone number", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    If Not mtxtMobilePhone.MaskCompleted Then 
     MessageBox.Show("Please enter a valid mobile phone number", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    If txtEmail.Text = "" Then 
     MessageBox.Show("You must enter a valid email address", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
    ElseIf Not txtEmail.Text.Contains("@") Then 
     MessageBox.Show("Not a valid email address", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     errorcount += 1 
     Exit Sub 
    End If 
    If errorcount >= 5 Then 
     MessageBox.Show("Too many errors. Shutting down", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Warning) 
     Me.Dispose() 
     Exit Sub 
     'End 
     'Exit Sub 
    End If 
    Me.Hide() 
    frmCreditCardInfo.Show() 
End Sub 
End Class 

回答

0

你的if語句 - If IsNumeric(txtAge.Text) = True Then

如果等同於真實的,沒有ELSEIF語句會火,你只是設置AgeCheck =真,這一切。您需要重新修改邏輯

0
  1. 您需要處理IsNumeric(txtAge.Text)爲假時。
  2. 您需要退出子,當遇到錯誤

試試這個塊

If IsNumeric(txtAge.Text) = True Then 
    strAge = Integer.Parse(txtAge.Text) 
    If strAge < 18 Then 
     MessageBox.Show("You must be over 18 years old", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     Exit Sub 
    ElseIf strAge > 125 Then 
     MessageBox.Show("Don't be stupid. You're not that old.", "Error", MessageBoxButtons.OK, _ 
         MessageBoxIcon.Error) 
     Exit Sub 
    End If 
Else 
    MessageBox.Show("You must enter a valid age", "Error", MessageBoxButtons.OK, _ 
        MessageBoxIcon.Error) 
    Exit Sub 
End If