我试图找到解决方案,但没有任何作用。我有大约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
答案 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