我正在尝试通过数组访问按钮选项,但出现空异常
首先,我想通过数组访问与下面相同的设置。
分别检测是否单击了阵列中的按钮。
dim buttonRow0() as buttons = {button1,button2,button3}
dim buttonRow1() as buttons = {button4,button5,button6}
dim buttonRow2() as buttons = {button7,button8,button9}
dim buttonRows() as object = {buttonRow0,buttonRow1,buttonRow2}
buttonsRows(1)(1).BackColor = Color.Red
将button5的颜色设置为红色
我得到:
System.NullReferenceException,对象变量或未设置块变量
答案 0 :(得分:0)
修复: 请注意,您可以根据需要简单地在需要的位置创建数组。它的开销很小,所以没什么大不了的。例如,您可能有一个执行多次的事件处理程序,并且可能在该事件处理程序中创建了数组,因此将创建并丢弃多个数组。没什么大不了的。您也可以只创建一个数组并通过将其分配给成员变量来重用它。虽然这样做有些陷阱。您不能这样做: vb.net代码:
Private buttons As Button() = {Button1, Button2, Button3}
因为代码将在表单的构造函数之前执行,因此将在创建按钮之前执行。这意味着您将得到一个包含Nothing
,Nothing
和Nothing
的数组。您需要创建数组并在构造函数执行后将其分配给字段,因此在Load事件处理程序中:
vb.net代码:
Private buttons As Button()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
buttons = {Button1, Button2, Button3}
End Sub