Chris,
Set the Cancel property of the button .T. then in your Valid do this:
if ( lastkey() = 27 )
* cancel button hit
return .t.
else
* validation code
endif
You can also look at moving from controls based validation to field level validation using the database container.
>I have a form that has text box with a valid method. If I navigate to the textbox and insert invalid data and then wish to cancel the editing using the cancel button I cannot. The valid method fires and will not let me leave the textbox. What do I need to do?