检测空文本框的vb.net文本框标记

时间:2015-05-09 12:07:20

标签: vb.net

我想创建一个项目来检测哪个文本框是空的而不是

If txtInterviewee.Text = String.Empty Or txtInterviewed.Text = String.Empty Or txtValidated.Text = String.Empty Or _
             txtResidence.Text = String.Empty Or dtpValidated.Text = String.Empty Or txtLastName.Text = String.Empty Or _
             txtFirstName.Text = String.Empty Or txtMiddleName.Text = String.Empty Or txtAddress.Text = String.Empty Or _
             cmbGender.Text = String.Empty Or cmbCivilStatus.Text = String.Empty Or dtpBirthDay.Text = String.Empty Or _
             txtBirthPlace.Text = String.Empty Or txtCitizenship.Text = String.Empty Then
            MsgBox("Must fill the following Fields")
        End If

如果任何文本框为空,我希望它被标记或者某些内容,以便用户知道需要填写哪个文本框。

2 个答案:

答案 0 :(得分:0)

您可以遍历表单中的所有文本框,并检查它们是否为空。像这样:

 For Each box As TextBox In Me.Controls.OfType(Of TextBox)()
     If box.Text = String.Empty Then
         box.Text = "This is empty!!"
     End If
 Next

答案 1 :(得分:0)

你可以写一个像这样的函数

Function CheckIfBoxEmpty(ByVal txt as TextBox) as Boolean
     if string.IsNullOrWhiteSpace(txt.Text) Then
         ' Optionally insert a message here .....
         txt.Focus()
         return True
     else
         return False
     End If
End Function

然后,您可以为要监视的每个文本框调用此函数

Dim isEmpty as Boolean = False
if Not isEmpty Then isEmpty = CheckIfBoxEmpty(txtInterviewee)
if Not isEmpty Then isEmpty = CheckIfBoxEmpty(txtInterviewed)
if Not isEmpty Then isEmpty = CheckIfBoxEmpty(txtValidated)
...and so on for the other textboxes

如果您要检查一些文本框,并且不需要检查某些文本框,则建议使用上面的代码。相反,如果要检查表单上的所有文本框,则每个循环的简单更合适

For Each tbox in Me.Controls.OfType(of TextBox)
     if CheckIfBoxEmpty(tbox) Then
         Exit For
     End If
Next

通过这些方式,CheckIfBoxEmpty函数会将焦点设置为空文本框并返回True表示已找到空文本框,您可以停止搜索它。如果您确实需要向用户发送消息,可以在使用MessageBox设置文本框焦点之前添加消息,或者更好的是在错误文本框旁边闪烁的ErrorProvider对象。