Ich versuche die Eingaben zu validieren, um nur einen Zahlenbereich zwischen 1 und 100 zu akzeptieren. Ich habe es, wo es Zahlen im Bereich von 1-100 akzeptiert. Was ich brauche ist, wie man sicherstellen kann, dass Zeicheneingaben wie ein Buchstabe oder ein Symbol (?, /, <,> ect ...) nicht verwendet werden können. Ich benutze eine Schleife, um jeden Eingang zu durchsuchen, der in ein Array eingefügt wird. Wenn Eingaben validiert werden, gebe ich ein blnOk = True zurück, um es in meinem Button-Event zu verwenden, um das Programm zu starten. Ich habe double.TryParse versucht, aber ich kann es nicht mit dem Array arbeiten. Ich habe auch Option Strict ON. dblStudentTestScores (i) ist das Array, in dem die Eingaben gespeichert werden. txtTestScores (i) Array wird verwendet, um dem Programm mitzuteilen, in welchem Textfeld die Schleife aktiviert ist, damit es mit einem Fehler den Fokus erhalten kann.Eingabe des Textfelds für den numerischen Bereich prüfen 1-100
Dies ist der Code mit der IsNumeric, aber es wird nicht in die Else-Klausel gehen. Es springt in den Versuch zu fangen. Ich möchte wirklich, dass ich mich auf die Textbox konzentriere, die die ungültige Eingabe hat. Ähnlich wie wenn die Zahl nicht zwischen 0 und 100 liegt.
Private Sub ValidateScores()
For i = 0 To 8
If CInt(IsNumeric(dblStudentTestScores(i))) >= 0 And CInt(IsNumeric(dblStudentTestScores(i))) <= 100 Then
blnOK = True
Else
MessageBox.Show("Please Enter Test Score between 0 and 100")
txtTestScores(i).Clear()
txtTestScores(i).Focus()
txtTestScores(i).BackColor = Color.Yellow
blnOK = False
Exit Sub
End If
txtTestScores(i).BackColor = Color.White
Next
blnOK = True
End Sub
Jeder Eingang füllt das Array.
Public Sub PopulateTestScores()
'Student 1 test scores
dblStudentTestScores(0) = CDbl(txtStudent1Score1.Text)
dblStudentTestScores(1) = CDbl(txtStudent1Score2.Text)
dblStudentTestScores(2) = CDbl(txtStudent1Score3.Text)
'Student 2 test scores
dblStudentTestScores(3) = CDbl(txtStudent2Score1.Text)
dblStudentTestScores(4) = CDbl(txtStudent2Score2.Text)
dblStudentTestScores(5) = CDbl(txtStudent2Score3.Text)
'Student 3 test scores
dblStudentTestScores(6) = CDbl(txtStudent3Score1.Text)
dblStudentTestScores(7) = CDbl(txtStudent3Score2.Text)
dblStudentTestScores(8) = CDbl(txtStudent3Score3.Text)
End Sub
Und welche Probleme haben Sie mit diesem Code? Hier sind die Validierungstests, aber ich kann nicht sehen, wo Sie die Eingaben nehmen und prüfen, ob sie wirklich Zahlen sind. – Steve
Erlaubt mir immer noch die Eingabe von Zeichen wie?, /,>, Und erlaubt sogar einen Buchstaben. Ich brauche nur Nummern, die in der Eingabe verwendet werden dürfen. Das einzige, was ich an dieser Stelle überprüfen kann, ist zu überprüfen, ob die Eingabe zwischen 0 und 100 liegt. –
Sie sollten double.TryParse verwenden, um zu überprüfen, ob die Eingabe gültig ist oder nicht. Können Sie den Code anzeigen, der die Doppelpunkte zum Array hinzufügt? – Steve