well the syntax obviously changes but they are similar.
when an array is passed its actually a pointer to the address of the first element of the array of values
if you say a its the same as *(a+1)
when you pass a pointer you can make it point to any address of something of the same type and if your using it to access the values of an array you have to make sure it doesnt go past the end of the array
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...