Ich versuche, meine Eingaben zu validieren. Ich bin mir nicht sicher, was ich vermisse. Es funktioniert, wenn ich es teste. Es wird die Fehlermeldung werfen, aber immer noch die Berechnung durchführen. Ich bin sicher, es hat etwas damit zu tun (Dim blnOK As Boolean = True). Kann jemand mir helfen, die Eingabe zu validieren und es stoppen zu lassen und korrekte Informationen einzutragen, anstatt nur die Fehlermeldung zu geben. Ich will nicht, dass es berechnet, ob die Eingabe schlechte Daten sind.Validierung der Eingabe in VB
Public Class frmFallingDistance
Dim blnOK As Boolean = True
Private Sub Validation(ByRef FallTime As Decimal)
'Validate inputs
'Input needs to be numeric
If IsNumeric(txtFallTime.Text) Then
FallTime = CDec(txtFallTime.Text)
Else
MessageBox.Show("Please enter a numeric value")
txtFallTime.Focus()
txtFallTime.BackColor = Color.Yellow
blnOK = False
Exit Sub
End If
'Input can't be less than 0
If FallTime < 0 Then
MessageBox.Show("Please enter a numeric value 0 or greater")
txtFallTime.Focus()
txtFallTime.BackColor = Color.Yellow
blnOK = False
Exit Sub
End If
blnOK = True
End Sub
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
''declare local variables
Dim decFall As Decimal 'gives variable (t) in equation
Dim decFallDistance As Decimal 'gives variable (d) in equation
Dim decAnswer As Decimal
Dim decFallTime As Decimal 'validating data in txtFallTime
'Return backcolor to white
txtFallTime.BackColor = Color.White
'Validate inputs
Validation(decFallTime)
'Run FallingDistance Function
decAnswer = FallingDistance(decFall, decFallDistance)
'Display falling distance in meters
lblFallingDistance.Text = decAnswer.ToString
End Sub
Ich versuchte es, eine Funktion zu machen, aber es wäre immer noch die Gesamt zu berechnen, anstatt die Berechnung stoppen und zwingt mich, in gültige Daten in den Eingang zu setzen.
Private Function Validation(ByVal FallTime As Decimal) As Decimal
'Validate inputs
'Input needs to be numeric
If IsNumeric(txtFallTime.Text) Then
FallTime = CDec(txtFallTime.Text)
Else
MessageBox.Show("Please enter a numeric value")
txtFallTime.Focus()
txtFallTime.BackColor = Color.Yellow
blnOK = False
End If
'Input can't be less than 0
If FallTime < 0 Then
MessageBox.Show("Please enter a numeric value 0 or greater")
txtFallTime.Focus()
txtFallTime.BackColor = Color.Yellow
blnOK = False
End If
Return CDec(blnOK = True)
End Function
ich es herausgefunden ich das Click-Ereignis zu ‚Validate Eingänge Validation (decFallTime)
If blnOK = True Then
'Run FallingDistance Function
decAnswer = FallingDistance(decFall, decFallDistance)
'Display falling distance in meters
lblFallingDistance.Text = decAnswer.ToString
End If
Das einzustellen brauchte mir erlaubt, meine Validierung mit der boolean zu überprüfen und tun dann die Berechnung .
Bitte den Funktionscode des Anrufers anzeigen. – shanyour
ein Vorschlag, die Funktion zu verwenden und FallTime darauf zu setzen, 'lngFallTime = Validation (FallTime)' und Dim blnOK Als Boolean dann nächste Zeile blnOK = True –
Machen Sie es zu einer Funktion, die * einen * booleschen Wert zurückgibt bei der Rückkehr. Wie es ist, tut es mehr als die Validierung, es setzt ein Flag, analysiert einen gültigen Wert und fungiert als eine Steuerprozedur – Plutonix