【问题标题】:How to check if a textbox is empty VB.Net [duplicate]如何检查文本框是否为空 VB.Net [重复]
【发布时间】:2017-01-02 14:41:21
【问题描述】:

我想测试文本框是否为空以进行验证,而不是使用 if x = ""。相反,我想知道是否有更好的方法来做到这一点。目前我有:

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

但是,这似乎不起作用,有人可以告诉我正确的方法或其他方法吗?

【问题讨论】:

  • 抱歉,我没有注意到那个帖子。下次我会注意的。

标签: vb.net


【解决方案1】:

例如:

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

【讨论】:

    【解决方案2】:

    你可以用这个:

    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
    

    Tim Schmelter 在Check for empty TextBox controls in VB.NET 上的回答中的代码

    【讨论】:

    • 抱歉,您能否解释一下该代码,以便我理解以供将来参考?
    • 请感谢代码作者!这是非常不专业的。 stackoverflow.com/questions/9489671/…
    • 首先将emptyTextBoxes声明为长度为0的任何文本属性的选择。然后检查是否有任何长度为0的文本框并显示它。
    • 如果没有 50- 声望,我无法发表评论。 @Zaggler
    • 完全相同的答案;没有添加任何内容来满足用户的需求,而且您甚至没有对 Tim 的回答表示赞同,这显然对您有帮助。
    【解决方案3】:

    您需要检查Text 属性。

    If txtDob.Text = string.Empty Then
    

    使用您的代码,您正在检查您的 TextBox 的对象是否是空的,而不是内容。只要 TextBox 存在,您的条件就会返回 false。

    【讨论】:

    • 如果我改用 txtdob.text is nothing 那么上面的代码会起作用吗?
    • 没有。 is nothing 只是工作,如果没有对象的实例。文本框文本是空的,但不是什么都没有。如果您使用txtDob.Dispose() 处理您的文本框,txtDob Is nothing 将是正确的。通过这种方式,控件的实例被“释放”并且不存在。没有什么不比较字符串内容。
    • @Irgthrill 我会向你推荐这篇关于nothing 的文章,以了解它的含义msdn.microsoft.com/en-us/library/0x9tb07z.aspx
    • 哦,我明白了,空的和没有的是有区别的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多