如何填充GroupBox中的第一个空TextBox?

时间:2017-03-10 13:36:15

标签: vb.net

我有一个GroupBox有多个TextBox控件,我可以查看是否有空是很好但是我试图让我的程序填充它找到的第一个空文本框GroupBox

代码:

Dim empty = From txt In grpbill.Controls.OfType(Of TextBox)() 
            Where txt.Text.Length = 0 

If empty.Any Then 

End If

有什么想法吗?

2 个答案:

答案 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控件。第一个文本非空,而其他两个没有。当我运行代码时,这是我的输出:

enter image description here

答案 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