0

我在一个屏幕上有 44 个文本框(准确地说是 RadNumericTextBoxes,但这并不密切)。它们遵循无法以编程方式复制的通用命名模式 (rntb_[NameOfDBField])。

如何为每个名称为 ^= rntb_ 的控件设置.Value为?Nothing我尝试了以下方法:

Private Sub ClearValues()
    For Each c as Control in Controls
        If TypeOf c Is RadNumericTextBox Then
            TryCast(c, RadNumericTextBox).Value = Nothing
        End If
    Next
End Sub

但是,Controls.Count = 1 并且只包含母版页的名称。

我需要将参数传递给 Controls,还是需要完全做其他事情?它“只有”44 个文本框,所以我可以手动清除每个文本框,但如果可能的话,我宁愿以编程方式进行。

4

1 回答 1

1

如果 RadNumericTextBoxes 在表单上而不是在容器中,那么类似于

Private Sub ClearValues()
    For Each c As Control In Me.Controls
        If TypeOf c Is RadNumericTextBox Then
            Dim rntb = DirectCast(c, RadNumericTextBox)
            If rntb.Name.StartsWith("rntb_") Then
                rntb.Value = Nothing
            End If
        End If
    Next
End Sub

但是,如果它们在 GroupBox1 中,那么您将Me.Controls在上面替换为GroupBox1.Controls.

End For你的代码是什么?For..Next 循环Next在 VB.NET 中位于其主体的末尾。

于 2012-11-19T19:21:47.850 回答