Ho provato il tuo codice e l'ho sintetizzato in questo modo:
For Each ctrl As Control In Me.Controls
If Not ctrl.Tag Is Nothing AndAlso CInt(ctrl.Tag) > 3 Then
ctrl.Enabled = False
Else
ctrl.Enabled = True
End If
Next
Il problema è che se nel form c'è un pulsante dove il campo tag è nullo mi torna il seguente errore evidenziandomi la riga dell'If
InvalidCastException non è stata gestita. Cast non valido dalla stringa "" al tipo 'Double'. Da analisi che ho fatto il problema è qua:
CInt(ctrl.Tag) > 3, ma non capisco il perchè....