我想创建一个项目来检测哪个文本框是空的而不是
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
如果任何文本框为空,我希望它被标记或者某些内容,以便用户知道需要填写哪个文本框。
答案 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对象。