У меня есть 4 textboxes
в VB.NET, и я должен проверить ввод данных в них. По введенных данных в текстовые поля, которые я должен отобразить одно из следующих сообщений:Validating user in put in VB.NET
Score 1 пустой
оценка 1 не является числовым
оценка 1 не в диапазоне: 0 -10
Score 1 действует
Я должен повторить это для Score2
, Score3
, в nd Score4
.
Это мой код:
Public Class Form1
Dim vintScore As Integer = 1
Private Sub btn_Clear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Clear.Click
Call Clear()
End Sub
Private Sub btn_DefaultValues_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_DefaultValues.Click
Call DefaultValues()
End Sub
Private Sub btn_Validate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Validate.Click
Call ValidateData(txt_score1.Text)
Call ValidateData(txt_score2.Text)
Call ValidateData(txt_score3.Text)
Call ValidateData(txt_score4.Text)
End Sub
Private Sub Clear()
txt_score1.Text = ""
txt_score2.Text = ""
txt_score3.Text = ""
txt_score4.Text = ""
txt_category.Text = ""
lbl_StatusContent.Text = "All Data Cleared!"
End Sub
Private Sub DefaultValues()
Call Clear()
txt_score1.Text = "4"
txt_score2.Text = "1"
txt_score3.Text = "2"
txt_score4.Text = "4"
txt_category.Text = "A"
lbl_StatusContent.Text = vbCrLf & "TextBox values set to default values"
End Sub
Private Sub ValidateData(ByVal vScore As String)
If (vScore = "") Then
lbl_StatusContent.Text = vbCrLf & "Score " & vintScore & " is blank"
ElseIf Not (IsNumeric(vScore)) Then
lbl_StatusContent.Text = vbCrLf & "Score " & vintScore & " is not numeric"
ElseIf (vScore < 0 And vScore > 10) Then
lbl_StatusContent.Text = vbCrLf & "Score " & vintScore & " is not in range: 0-10"
Else
lbl_StatusContent.Text = vbCrLf & "Score " & vintScore & " is Valid"
End If
vintScore = vintScore + 1
End Sub
End Class
Что я сейчас получаю в выходе:
оценка 4 действительна
Score 8 действительна
оценка 12 не числовые
a й так далее ...
Принимая во внимание, что я после это:
оценка 1 действительна
Score 2 не является числовым
оценка 3 не в диапазоне: 0-10
Score 4 действует
как это ...
В чем проблема? Что номер счета неверен? Правильно ли подтвержден результат проверки? Вы не должны хранить 'vintScore' в переменной класса. Вместо этого передайте номер оценки в качестве параметра в метод 'ValidateData'. Кроме того, я бы посоветовал передать «StringBuilder» методу. 'ValidateData' будет добавлять свои сообщения в' StringBuilder', а обработчик событий кнопки будет присваивать надпись 'StringBuilder'''''''''''''''''''''.doc. Таким образом, у вас есть четкое разделение проблем. –
Проблема в том, что lbl_StatusContent.Text перекрывает каждый предыдущий результат. Я хочу, чтобы все они были в следующей строке. Пример: Оценка 1 действительна Оценка 2 действительна Оценка 3 действительна –