我有一个GroupBox
有多个TextBox
控件,我可以查看是否有空是很好但是我试图让我的程序填充它找到的第一个空文本框GroupBox
。
代码:
Dim empty = From txt In grpbill.Controls.OfType(Of TextBox)()
Where txt.Text.Length = 0
If empty.Any Then
End If
有什么想法吗?
答案 0 :(得分:2)
你快到了。我不确定你如何定义第一个,但我已经离开了TabIndex
属性:
Dim firstEmptyTextBox As TextBox = (From txt In GroupBox1.Controls.OfType(Of TextBox)()
Where txt.Text.Length = 0
Order By txt.TabIndex Ascending).FirstOrDefault()
If firstEmptyTextBox IsNot Nothing Then
firstEmptyTextBox.Text = "Text"
End If
您可以使用.FirstOrDefault()方法:
返回序列的第一个元素,如果序列不包含元素,则返回默认值。
在我的示例中,我有三个TextBox
控件。第一个文本非空,而其他两个没有。当我运行代码时,这是我的输出:
答案 1 :(得分:1)
这里的另一个想法也适用于TextBox
中的所有GroupBox
控件都不为空的情况。
Private Sub SetTextJForFirstEmptyTextBoxIfExists(text As String)
Dim emptyTextBoxes As IEnumerable(Of TextBox)
= grpbill.Controls.
OfType(Of TextBox)().
Where(Function(txtbox) txtbox.Text.Length = 0)
For Each emptyTextBox In emptyTextBoxes
emptyTextBox.Text = text
Exit Sub
Next
End Sub