将值添加到多个文本框(类似名称)

时间:2014-08-27 18:26:29

标签: vb.net loops textbox

我试图找到解决方案,但没有任何作用。我有大约650个名为A001A,A002A ... A600A的文本框,我想将值放在这些texbox中,例如“example value”。

我找到了将值放在表单中的所有文本框中的解决方案,但在我的文档框中有一些其他值。

下一个解决方案就是这个:

    Dim textBoxArr() As TextBox = {A2, A3, A4, A5, etc..}
For Each tb As TextBox In textBoxArr
    Select Case tb.Text
        Case "RESNO"
            tb.Text = "-15,55,0"
        Case "DOGAL"
            tb.Text = "-15,54,0"
    End Select
Next

...我必须输入所有名字,而且我没有足够的自由来操纵前50的值,依此类推。

这是我的代码,但不起作用:

For I As Integer = 0 To 650
    Dim txt As TextBox = DirectCast(Me.Controls("A00" & I.ToString & "A"), TextBox)
            txt.Text = "example value"
Next

错误:对象引用未设置为对象的实例

感谢您的帮助。

编辑: 我找到了用户Idle_Mind

的解决方案
Dim matches() As Control
For i As Integer = 1 To 650
    matches = Me.Controls.Find("A" & String.Format("{0:000}", i) & "A", True)
    If matches.Length > 0 AndAlso TypeOf matches(0) Is TextBox Then
        Dim cb As TextBox = DirectCast(matches(0), TextBox)
        If cb.Text = "" Then
            cb.Text = "test"
        End If
    End If
Next

1 个答案:

答案 0 :(得分:1)

您没有测试正确的密钥(如果您的TextBox已正确命名)。

试试这样:

For i As Integer = 1 To 650
  Dim key As String = "A" & String.Format("{0:000}", i) & "A"
  If Me.Controls.ContainsKey(key) Then
    Me.Controls(key).Text = "blah"
  End If
Next