Я думаю, что нашел решение, я не единственный бывший разработчик VB6, который боролся с этим ограничением. Давным-давно я пытался перенести программное обеспечение, но потерпел неудачу из-за жесткой зависимости массивов элементов управления. Я прочитал много форумов и смог написать этот простой код:
Public Class Form1
'To declare the List of controls
Dim labels As New List(Of Label)()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'To get all controls in the form
For Each control In Me.Controls
'To search for the specific type that you want to create the array
If control.[GetType]().Name.Contains("Label") Then
'To add the control to the List
labels.Add(DirectCast(control, Label))
End If
Next
'To sort the labels by the ID
labels = labels.OrderBy(Function(x) x.Name).ToList()
End Sub
End Class
Я использовал List по удобным причинам, но с помощью этого кода вы можете создавать во время разработки необходимые элементы управления и в то же время сохраняете «индекс» в качестве последних символов (метка 1 , метка 2 , ..., этикетка N )
Позже вы можете повторять их с помощью цикла и добавлять их в мгновение ока. Далее вы сможете манипулировать ими из объекта с помощью меток (0), меток (1) и т. Д.
Надеюсь, этот кусок кода поможет в будущем большему количеству программистов.