首页 > 解决方案 > 有没有办法将已经创建的按钮放入数组中?

问题描述

我想要做的是将我已经创建的按钮放入一个数组中,但是,每当我查看数组时,它说那里什么都没有?我想知道我是否做错了什么。

Dim buttons As System.Windows.Forms.Button() = {Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8, Button9, Button10, Button11, Button12, Button13, Button14, Button15, Button16, Button17, Button18, Button19, Button20, Button21, Button22, Button23, Button24, Button25, Button26, Button27, Button28, Button29, Button30, Button31, Button32, Button33, Button34, Button35, Button36, Button37, Button38, Button39, Button40}

    Private Sub ClearBtn_Click(sender As Object, e As EventArgs) Handles ClearBtn.Click
    For i = 1 To 40
        buttons(i).BackgroundImage = System.Drawing.Image.FromFile("leaf.png")
    Next
End Sub

单击 Clearbtn 时,我得到 System.NullReferenceException: 'Object reference not set to an instance of an object。并且数组是空的。我已将数组设置为全局变量,所以它应该可以工作吗?

标签: vb.netwinforms

解决方案


问题是创建数组的代码在表单构造函数之前执行,因此在创建所有子控件之前。当然,这些领域在那时什么都不是。解决方案是声明您所在的字段,但要创建数组并将其分配给 Load 事件处理程序中的该字段。


推荐阅读