private bool ValidateNestedControls (Control c, ValidationConstraints constraints, bool recurse)
{
bool validate_result = true;
if (!c.CausesValidation)
validate_result = true;
else if (!ValidateThisControl (c, constraints))
validate_result = true;
else if (!ValidateControl (c))
validate_result = false;
if (recurse)
foreach (Control control in c.Controls)
if (!ValidateNestedControls (control, constraints, recurse))
return false;
return validate_result;
}