2011-11-28 37 views
2

我正在将应用程序从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 

我得到的错误说“对象引用不设置到对象的实例“。我觉得我在这里错过了很多东西,但是它有什么问题?

感谢

回答

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 
    .... 
+0

辉煌,谢谢大家。 – Nick

1

变更首次公开分配与所需的维数组,而不是仅仅把它声明:

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