Control arrays were a VB6 designer type concept that didn't port over into .NET WinForms. However, you can mimic the behavior by searching through all controls and checking if the name starts with the same text, and then adding those that match into an array.
I've created an extension method for you. Just save this as a new module in your project and on any form you can call it.
Imports System.Runtime.CompilerServices
Public Module FormExtensions
<Extension()>
Public Function GetControlArray(Of TControl As Control)(extForm As Form, namePart As String, container As Control) As IEnumerable(Of TControl)
Dim controls = From control In container.Controls.OfType(Of TControl)
Where control.Name.StartsWith(namePart)
Select control
Dim containerSets = From control In container.Controls.OfType(Of Control)
Where control.Controls.Count > 0
Select GetControlArray(Of TControl)(extForm, namePart, control)
For Each item As IEnumerable(Of TControl) In containerSets
controls = controls.Union(item)
Next
Return controls
End Function
End Module
Now in your form, you can call it and loop through the controls. In this example I get all of the labels that start with a specific name and then change the text to match. The order of the controls is based on the order they were added to the form.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim controls = GetControlArray(Of Label)("MyLabel", Me)
For Each item As Label In controls
item.Text = "Found"
Next
End Sub
The labels I had added to the form were named like this (taken from the designer generated code)
Me.MyLabel1 = New System.Windows.Forms.Label()
Me.MyLabel2 = New System.Windows.Forms.Label()
Me.MyLabel3 = New System.Windows.Forms.Label()
Me.MyLabel4 = New System.Windows.Forms.Label()
Me.MyLabel5 = New System.Windows.Forms.Label()
Me.MyLabel6 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.MyLabel7 = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Here is a picture of my designer with the nested container controls. Also, a before and after picture of the form.