2011-11-28 4 views
2

VB6에서 VB6로 응용 프로그램을 변환하고 코드 (컨트롤 배열)의 일부 컨트롤을 선언하고 초기화해야합니다. 나는 다른 형태는 그 안에 저장된 데이터에 액세스 할 수 있도록이 전 세계적으로 선언하고 난의 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 
관련 문제