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循环的内容。
答案 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}
...