2017-01-02 205 views
-1

我想測試一個文本框是否爲驗證目的而爲空,而不是使用if x =「」。相反,我想知道是否有更好的方法來做到這一點。目前,我有:如何檢查文本框是否爲空VB.Net

If txtDob Is Nothing Or txtFirst Is Nothing Or txtGender Is Nothing Or txtLast Is Nothing Or txtPostcode Is Nothing Or txtStreetName Is Nothing Or txtStreetNo.Text Is Nothing Then 
     MessageBox.Show("One or more fields have not been completed") 
     Return 
    End If 

然而,這似乎沒有工作,可有人告訴我正確的方法或另一種方式來做到這一點嗎?

+0

不好意思啊,我沒有注意到線程。下次我會關注它。 – lrgthrill

回答

0

您需要檢查Text屬性。

If txtDob.Text = string.Empty Then 

隨着你的代碼,你正在檢查你的文本框的對象是什麼都不是內容。只要TextBox存在,你的條件就會返回false。

+0

如果我改爲txtdob.text,那麼上面的代碼也可以工作嗎? – lrgthrill

+0

如果沒有對象的實例,那麼「沒有什麼」就是可行的。文本框文本是空的,但不是什麼。 'txtDob如果你用'txtDob.Dispose()'處理你的文本框,沒有什麼是真實的。這樣,控件的實例就會「釋放」並且不存在。沒有什麼比較字符串內容。 –

+0

@Irgthrill我會推薦你​​這篇關於'nothing'的文章來理解它的含義https://msdn.microsoft.com/en-us/library/0x9tb07z.aspx –

0

您可以使用此:

Dim emptyTextBoxes = 
    From txt In Me.Controls.OfType(Of TextBox)() 
    Where txt.Text.Length = 0 
    Select txt.Name 
If emptyTextBoxes.Any Then 
    MessageBox.Show(String.Format("Please fill following textboxes: {0}", 
        String.Join(",", emptyTextBoxes))) 
End If 

蒂姆Schmelter的回答守則Check for empty TextBox controls in VB.NET

+0

對不起,但你能解釋一下這個代碼嗎,所以我明白它以備將來參考? – lrgthrill

+2

請***代碼的作者***!這是非常不專業的。 http://stackoverflow.com/questions/9489671/check-for-empty-textbox-controls-in-vb-net – Codexer

+0

首先聲明'emptyTextBoxes'作爲長度爲0的任何文本屬性的選擇,然後檢查是否有任何顯示長度= 0的文本框。 – Juanche

0

強大的文本例如:

If String.IsNullOrEmpty(txtDob.Text) Then   
    ' "Contains Empty value or Null Value" 
End If