Mike,
Another way to deal with this issue on a global basis, is to move your validation out of the individual controls and into the Save routine where you validate everything at once. This gives you the additional benefit that the users can work in an field order that they need to, not in a field order that your app forces them to use.
>I have a form with several controls on it. There is a "Cancel" button that I want to be able to select at anytime to close the form and discard all changes. The problem is that if a control has focus and has valid code in it that prevents it from losing focus, the "Cancel" button is useless.