我正在将应用程序从VB6转换为VB.NET,并且需要在代码(控件数组)中声明和初始化一些控件。我把它全局声明,所以其他表单可以访问存储在其中的数据,然后我尝试在Form_Load()子句中操作它们:
Public lblDataZone() As Label
Private Sub Form_Load() Handles Me.Load
lblDataZone(0) = New Label
With lblDataZone(0)
.Height = 13
.Text = "Zone (l/min)"
.Left = 6
.Top = 42
End With
我得到的错误是“对象引用未设置为对象的实例”。我觉得我在这里错过了一些巨大的东西,但它有什么问题呢?
由于
答案 0 :(得分:4)
首先,你必须实例化Label
的数组。您可以使用ReDim()
或New
关键字:
Private Sub Form_Load() Handles Me.Load
ReDim lblDataZone(0) 'Or lblDataZone = New Label(0) {}
lblDataZone(0) = New Label
With lblDataZone(0)
.Height = 13
.Text = "Zone (l/min)"
.Left = 6
.Top = 42
End With
....
答案 1 :(得分:1)
更改第一个PUBLIC以分配具有所需维度的数组,而不仅仅是声明它:
Public lblDataZone(99) As Label
Private Sub Form_Load() Handles Me.Load
lblDataZone(0) = New Label
With lblDataZone(0)
.Height = 13
.Text = "Zone (l/min)"
.Left = 6
.Top = 42
End With