为什么我无法引用文本框名称vb.net

时间:2015-12-09 05:36:44

标签: vb.net

我想将数组中的值添加到每个文本框中 这是我的代码:

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

但它仍然无法奏效。 请帮助我...先谢谢。

1 个答案:

答案 0 :(得分:1)

如果找不到结果,则查找可以返回Null(无),这会导致空引用异常。

枚举/循环文本框控件:

尝试使用控件集合上的foreach显式循环它们

    For Each control In Me.Controls
        If control.GetType() Is GetType(TextBox) Then
            'Do stuff to control.
        End If
    Next

您现在正在使用的尝试映射到控件名称的过程不会非常适应,特别是如果其他人来了很长并且更改了控件的名称。

如果您只想更新某组文本框,可以将它们放在表单上的面板中,并使用上述相同的方法循环显示面板的控件。