从控件数组加载控件

Load control from array of controls

这是我的代码

Function GenerateInterface()
Dim ObjectsArray() As VB.Control
Dim TmpCtrl As VB.Control

ReDim ObjectsArray(1)
For Each TmpCtrl In Me.Controls
    If TmpCtrl.Container Is frConfigVars(0) Then
        Set ObjectsArray(UBound(ObjectsArray) - 1) = TmpCtrl
        ReDim Preserve ObjectsArray(UBound(ObjectsArray) + 1)
    End If
Next TmpCtrl

For i = 1 To UBound(Variables) - 1 'global array containing how many frames I need
    Load frConfigVars(i)
    frConfigVars(i).Left = 0
    frConfigVars(i).top = frConfigVars(i - 1).top + frConfigVars(i - 1).Height
    frConfigVars(i).Visible = True

     For x = 0 To UBound(ObjectsArray) - 1
         Set TmpCtrl = ObjectsArray(x)
         Load TmpCtrl(i) '<-- crashes here
         'stuff to move and view new object
     Next x
Next i 

End Function

它基本上将框架中存在的 0 索引对象加载到控件数组中,让我动态加载它们多少次我需要但我无法从变量本身加载新控件。

我有点明白为什么加载会崩溃,我猜 TmpCtrl 包含(示例)txtbox(0) 而不是我需要加载新对象的 txtbox,对吗? 如果是这样,我该如何加载新控件?

我无法从头开始创建对象,因为它们很多而且定位很麻烦 我不能用他们的名字来称呼他们,因为随着时间的推移我会 add/remove 一些东西所以我不想在它工作后再次触摸这个功能

谢谢

好吧,其实是我自己做的!

要访问对象数组本身,我只需要更改

Set TmpCtrl = ObjectsArray(x)

进入

Set TmpCtrl = Me.Controls(ObjectsArray(x).Name)