FireNet, you need to use more () in those statements, as you will want to be clear on the operator precidence. I do not have my books handy, but am concerned that the == (equals) operator will be evaluated after the || (or). I would use () to make sure that the statements execute the way you want them to.
actually, if i was paying attention in class, i believe it's the other way around. logical operators such as || (or) && (and) etc. come before mathamatical operators, <= (less than or equal to) != (not equal to) etc. I'm sure that will compile just fine without it. but this is a good lesson to people with algorithms because in C++ certain things are evaluated first... it will give you headaches later on...
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 ...