2017-01-02 152 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