0

我有一个包含 6 个组框和 120 个文本框的表单。在向数据库更新数据期间,我希望空文本框返回值“-NA-”。我尝试了以下代码,但我不断收到错误:

     For i As Integer = 1 To 20
        If GroupBox1.Controls("CollarTB" & i).Text = String.Empty Then
            GroupBox1.Controls("CollarTB" & i).Text = "-NA-"
        End If

        If Me.GroupBox1.Controls("CollarTB" & i).Text = String.Empty Then
            Me.Controls("CollarTB" & i).Text = "-NA-"
        End If

        If Form9.Controls(i).Text = String.Empty Then
            Form9.Controls(i).Text = "-NA-"
        End If

    Next



        If FrntTB1.Text = String.Empty Then FrntTB1.Text = "-NA-"

如何才能做到这一点?请问有什么解决办法吗?

此外,我还有一个包含大约 180 个文本框的组框。我想一次从数据库的一行中填充它们。是否可以?如果是这样,怎么做?

4

1 回答 1

0

您可以使用从linq中过滤,因为您可以过滤掉,然后根据您的要求简单地将值设置为该值。试试这个代码,groupboxesformgroupboxestextboxestextboxes

Linq 类型 I:

For Each xGroupBox As GroupBox In Me.Controls.OfType(Of GroupBox)()

    For Each xTextBox As TextBox In xGroupBox.Controls.OfType(Of TextBox)()

        If xTextBox.Name.StartsWith("CollarTB") andalso xTextBox.text = string.empty Then
            xTextBox.Text = "-NA-"
        End If

    Next

Next

Linq II 型:

 For Each xGroupBox As GroupBox In Me.Controls.OfType(Of GroupBox)()
     For Each xTextBox As TextBox In From xTxtbx In xGroupBox.Controls.OfType(Of TextBox)() Where xTxtbx.Text.StartsWith("CollarTB") and xTxtbx.text = string.empty
         xTextBox.Text = "-NA-"
     Next
 Next

非 Linq 版本:

For Each xControls As Control In Me.Controls

    If TypeOf xControls Is GroupBox Then

        For Each xControls1 As Control In xControls.Controls

            If TypeOf xControls1 Is TextBox Then

                If xControls1.Name.StartsWith("CollarTB") andalso xControls1.text = string.empty  Then

                    xControls1.Text = "-NA-"

                End If

            End If

        Next

    End If
    Next
于 2013-04-20T04:45:16.640 回答