我在类form1
的范围内有一个数组
Dim ArrayTextBoxes() as Textbox = new Textbox() {textbox1, textbox2}
以及匹配长度的标签数组
Dim ArrayLabels() as Label = new Label() {label1, label2}
我想(在属于form1
类的函数中):
For i = 0 to ArrayTextBoxes.Count - 1
ArrayTextBoxes(i).Enabled = True
ArrayTextBoxes(i).ReadOnly = True
ArrayTextBoxes(i).BackColor = Color.Gray
ArrayLabels(i).BackColor = Color.Gray
Next
但是ArrayTextBoxes(i)
返回Nothing
我还需要此功能才能用于ComboBox()
和CheckBox()
答案 0 :(得分:3)
大概是成员变量而不是局部变量,即在类级别而不是在方法中声明。如果真是这样,那么,一件事,您应该使用Private
而不是Dim
。至于这个问题,这是因为该代码是在构造函数执行之前执行的,因此尚未创建控件。您需要声明变量的位置,但要创建数组并将其分配给Load
事件处理程序中的那些变量,例如
Private textBoxes As TextBox()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
textBoxes = {TextBox1, TextBox2}
End Sub