我一直在寻找一种解决方案,用于检查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个以上的文本框,则效率不高。
根据您的评论,不必担心为控件赋予更有意义的名称。
只需将Select txt.Name
更改为Select txt.Tag
,并在属性中为控件提供有意义的标记名称:)