In your case I would use a NumericUpDown control. No more need for any validation just set it's Minimum and Maximum properties to the values you need. You cannot even type letters etc. in a NumericUpDown.
Just because the default value is zero it doesn't prevent checking against length. A value of '0' in the box has a length of 1. I can't see the point of checking length anyway. It could be invalid if the length is 0 and if it's greater than zero.
So, to validate the box you must convert to integer as stated earlier. The box may be empty and the conversion will fail so first check the conversion succeeds:
if (int.TryParse(textBox1.Text, out myInt) && (myInt > 0))
// Input is valid
It would certainly help if you gave an example of an input value that was failing.
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 ...