将控件分组为数组并访问其属性

时间:2018-07-31 09:32:09

标签: arrays vb.net textbox

我在类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()

1 个答案:

答案 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