通过数组访问按钮设置

时间:2019-07-15 10:03:51

标签: .net vb.net

我正在尝试通过数组访问按钮选项,但出现空异常

首先,我想通过数组访问与下面相同的设置。

分别检测是否单击了阵列中的按钮。

  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,对象变量或未设置块变量

1 个答案:

答案 0 :(得分:0)

修复: 请注意,您可以根据需要简单地在需要的位置创建数组。它的开销很小,所以没什么大不了的。例如,您可能有一个执行多次的事件处理程序,并且可能在该事件处理程序中创建了数组,因此将创建并丢弃多个数组。没什么大不了的。您也可以只创建一个数组并通过将其分配给成员变量来重用它。虽然这样做有些陷阱。您不能这样做: vb.net代码:

Private buttons As Button() = {Button1, Button2, Button3}

因为代码将在表单的构造函数之前执行,因此将在创建按钮之前执行。这意味着您将得到一个包含NothingNothingNothing的数组。您需要创建数组并在构造函数执行后将其分配给字段,因此在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