Vb6 从另一个子系统访问新创建的线

Vb6 从另一个子系统访问新创建的线,vb6,Vb6,从新创建的元素访问信息时遇到一些问题。这是我的代码 Private Sub c1_Click() Refresh Timer1.Enabled = Not Timer1.Enabled If Timer1.Enabled Then c1.Caption = "Stop" Else c1.Caption = "Start" End If a = l.X2 - l.X1 choice = a End Sub Private Sub Form_Load()

从新创建的元素访问信息时遇到一些问题。这是我的代码

Private Sub c1_Click()
  Refresh
  Timer1.Enabled = Not Timer1.Enabled
  If Timer1.Enabled Then
    c1.Caption = "Stop"
  Else
    c1.Caption = "Start"
  End If
  a = l.X2 - l.X1
  choice = a
End Sub

Private Sub Form_Load()
  Dim l As Line
  Set l = Controls.Add("VB.Line", "l", Me)
  With l
    .X1 = 2760
    .Y1 = 3000
    .X2 = 5640
    .Y2 = 3000
    .Visible = True
    .BorderStyle = 1
    .BorderWidth = 2
    .BorderColor = vbRed
  End With
End Sub

当我点击按钮“Object required”(需要对象)时,我得到了一个错误。在表单上我可以看到行,但我无法从另一个子节点访问它。问题出在哪里?

您的
变量
l
表单加载
过程的私有项,超出了范围

Dim l As Line
Form_Load
移动到表单代码模块的顶部(在任何方法或函数之外)。这将使您的表单上的任何方法或过程都可用:

Dim l As Line

Private Sub c1_Click()
   Refresh
   Timer1.Enabled = Not Timer1.Enabled
   If Timer1.Enabled Then
      c1.Caption = "Stop"
   Else
      c1.Caption = "Start"
   End If
   a = l.X2 - l.X1
   choice = a
End Sub

Private Sub Form_Load()
   Set l = Controls.Add("VB.Line", "l", Me)
    With l
     .X1 = 2760
     .Y1 = 3000
     .X2 = 5640
     .Y2 = 3000
     .Visible = True
     .BorderStyle = 1
     .BorderWidth = 2
     .BorderColor = vbRed
    End With
End Sub

“在表单上,我可以看到行,但我无法从另一个子节点访问它。”正如C-Pound Guru指出的,除非将该变量移出表单级别,否则无法通过变量
l
访问它。但是,您可以使用
控件(“l”).xxx=yyy
通过控件集合按名称访问控件本身。不客气。请随意点击复选框接受答案。