2015-05-09 111 views
1

我想打一個項目,將檢測哪個文本框爲空,而不是檢測空白文本框

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 

如果任何一個文本框爲空,vb.net文本標記我希望它被標記或東西因此用戶將知道需要填寫哪個文本框。

+0

查看ErrorProvider組件或從循環中鏈接消息 – Plutonix

回答

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 
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循環是比較合適的

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

在這些方面的CheckIfBoxEmpty功能將焦點設置爲空文本框和返回True以通知一個空的文本框已經找到,你可以停止搜索它。如果您確實需要向用戶發送消息,則可以在使用MessageBox設置文本框焦點之前添加它,或者更好地使用閃爍在錯誤文本框旁邊的ErrorProvider對象。