When the user clicks the mouse on your cancel button you have the opportunity to use the SYS(1270) function to see what the object under the mouse cursor is. In your text box valid test for this object name and if it is the cancel button do not execute your normal valid code.
Terry Rooks
Software Systems Architect
Microsoft Certified Solution Developer.Net
If at first you don't succeed, then skydiving definitely isn't for you.