我被指派编写一个保存有关电影数据的程序。我们需要在vb.Im中使用Windows窗体,试图验证文本框的数据条目。输入的文本必须是数字,必须是4个字符我试图解决的问题是,一旦它看到了我希望程序允许用户在文本框中重新输入一个值的值,而是它一直看着没有任何内容的文本框然后说它不是正确的格式,不允许用户输入正确的值。代码,只是为了验证到目前为止:
Dim PassValidate As Boolean = False
ReadFilmData()
NOFilms = NOFilms + 1
ReDim Preserve Film(NOFilms)
'Validate before it is saved to the file'
Do
If IsNumeric(Me.txtFilmID.Text) = True Then
If Me.txtFilmID.TextLength = 0 Then
'Presence check'
MsgBox("You are required to provide a value for the film ID")
ElseIf Me.txtFilmID.TextLength > 4 Then
'Length Check'
MsgBox("The film ID must be 4 numbers long")
ElseIf Me.txtFilmID.TextLength = 4 Then
PassValidate = True
End If
End If
If IsNumeric(Me.txtFilmID.Text) = False Then
MsgBox("The film ID must be a set of numbers ")
End If
If PassValidate = False Then
txtFilmID.Text = ""
MsgBox("Re-enter the value for Film ID")
Call SaveFilmData()
End If
If PassValidate = True Then
Film(NOFilms).FilmID = txtFilmID.Text
End If
Loop Until PassValidate = True
答案 0 :(得分:2)
你应该检查WinForms中的验证事件。它们是为了避免你所描述的问题。
答案 1 :(得分:0)
尝试删除Do循环,似乎不需要循环。