我想将数组中的值添加到每个文本框中 这是我的代码:
For i as int32 = 0 To Array.length - 1
Me.Controls("TextBox" & i + 1).Text = Array(i)
Next
当我运行上面的代码时,我收到了NullReferenceException错误 错误行是:
Me.Controls(" TextBox"& i + 1).Text = Array(i)
我在网上搜索后尝试了另一段代码,
For i as int32 = 0 To Array.length - 1
Dim c as Control() = Me.Controls.Find("TextBox" & i + 1 , True)
If c.Length = 1 Then
Me.Controls("TextBox" & i + 1).Text = Array(i)
End If
Next
但它仍然无法奏效。 请帮助我...先谢谢。
答案 0 :(得分:1)
如果找不到结果,则查找可以返回Null(无),这会导致空引用异常。
枚举/循环文本框控件:
尝试使用控件集合上的foreach显式循环它们
For Each control In Me.Controls
If control.GetType() Is GetType(TextBox) Then
'Do stuff to control.
End If
Next
您现在正在使用的尝试映射到控件名称的过程不会非常适应,特别是如果其他人来了很长并且更改了控件的名称。
如果您只想更新某组文本框,可以将它们放在表单上的面板中,并使用上述相同的方法循环显示面板的控件。