VB验证保持循环

时间:2016-11-02 15:22:09

标签: vb.net

我被指派编写一个保存有关电影数据的程序。我们需要在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

2 个答案:

答案 0 :(得分:2)

你应该检查WinForms中的验证事件。它们是为了避免你所描述的问题。

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.validated(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

答案 1 :(得分:0)

尝试删除Do循环,似乎不需要循环。