使用TextBox数组的NullReferenceException

时间:2013-11-23 00:54:33

标签: vb.net textbox nullreferenceexception

Dim NameBoxes = New TextBox(6) {Me.Controls("txt_Name1"), Me.Controls("txt_Name1"), Me.Controls("txt_Name2"), Me.Controls("txt_Name3"), Me.Controls("txt_Name4"), Me.Controls("txt_Name5"), Me.Controls("txt_Name6")}

For declarecounter As Integer = 0 To 6
   NameBoxes(declarecounter).Text = "Student" + declarecounter
Next

由于某种原因不能正常工作,我在表单加载时执行此代码。然后当我尝试

NameBoxes(1).Text = "Bob"

我的程序崩溃时出现NullReferenceException,即使我认为这些文本框的内容设置为表格加载时for循环的内容。

1 个答案:

答案 0 :(得分:2)

如果在类级别变量上完成此控件数组的初始化 - 那么控件尚未初始化(空值),将代码放在form_load事件中,看看它是否修复了问题。以calss级别声明它可以让你在整个类中访问,你必须在Load事件中初始化它 - 在控件存在之后。

Public Class form1
   'class level, can't initialized here
   Dim NameBoxes() As TextBox
   Private Sub Form1_load(...) Handles Me.Load
     NameBoxes = {initialize here}
   ...