Is this validation sufficient to ensure that the vals are not empty?
Don't use String.IsNullOrEmpty to validate required values.
You can create a method

private bool IsEmpty(string value, string errorMessage, Control controlToValidate)
{
    if ((value ?? string.Empty).Trim().Length == 0)
    {
        MessageBox.Show(errorMessage);
        controlToValidate.Focus();
        return true;
    }
    else
    {
        return false;
    }
}


instead of TestVal.
Consider using Validating event for validating your controls and the Tag  property to associate error messages with the controls.
Consider using ErrorProviders.