如何检查VB中的文本框是否为空

问题描述 投票:0回答:1

我一直在寻找一种解决方案,用于检查TabBox中所有文本框是否为空。我发现的唯一好的是:

Private Sub Button24_Click(sender As Object, e As EventArgs) Handles Button24.Click


       Dim emptyTextBoxes =
   From txt In Me.TabControl4.TabPages(1).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


      If TextBox25.Text = TextBox40.Text And TextBox31.Text = TextBox42.Text And TextBox47.Text = TextBox34.Text Then
          MessageBox.Show("Correct!")
      Else
          MessageBox.Show("Wrong!")
      End If
End Sub

(检查文本框是否为空的代码是@Tim Schmelter Check for empty TextBox controls in VB.NET]

问题是,当我运行它时,它将在MessageBox中说所有TextBoxes都是空的(正确的是,当我没有在其中输入任何值时)。但是,如果我用值填充其中一些,然后单击按钮以检查哪个文本框为空,它仍然会说所有的文本框都为空(甚至填充的文本框也是如此)。我是否缺少一些琐碎的东西,或者这不是检查文本框是否具有任何值的正确方法?我可以使用IF函数,但是如果我有50个以上的文本框,则效率不高。

vb.net
1个回答
0
投票

根据您的评论,不必担心为控件赋予更有意义的名称。

只需将Select txt.Name更改为Select txt.Tag,并在属性中为控件提供有意义的标记名称:)

© www.soinside.com 2019 - 2024. All rights reserved.