我正在尝试制作一个配对游戏,学习visual basic,我正在努力让控制阵列按照我希望的方式工作。
这是我的代码,
Public Class Form1
Dim buttonArray As Button() = {Button1, Button2, Button3, Button4, Button5, Button6,
Button7, Button8, Button9, Button10, Button11, Button12, Button13, Button14,
Button15, Button16}
Sub main()
End Sub
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
For button As Integer = 0 To 15
buttonArray(button).Text = "test"
Next
End Sub
End Class
如果我运行它,我会得到"对象引用未设置为对象实例"当我按下按钮时。将数组的声明向下移动到私有子中可以修复它,它按预期工作,但这意味着我不能在其他私有子中使用数组,只能在那个私有子中,对吗?
我如何使控制数组正确工作,并可用于我喜欢的任何子中?
您可以在类级别声明数组字段,但此时无法创建数组并将其分配给字段,因为控件尚未创建。实际上,数组是在执行窗体的构造函数之前创建的。正是这个构造函数调用了创建控件的InitializeComponent
方法。
您可以创建自己的构造函数并在InitializeComponent
调用后创建数组,也可以处理表单的Load
事件并在事件处理程序中创建。我建议使用后者,除非您在表单上调用Show
或ShowDialog
之前特别需要使用数组。
将数组初始化移动到Sub-Main((
可视化组件在初始化表单级别变量时没有初始化。