Kevin,
I guess, but it seems pretty flakey to me. <s> If the user is typing away on the keyboard, the mouse may be above
any control so SYS(1270) doesn't really help me know their intent. When a user leaves a control, it's hard to know where s/he is headed. Using the When() method works for clicks, with controls with When events, but not for Pages and not for keypresses. However, setting a CommandButton to Cancel = .T. allows the check for LASTKEY() = 27, which is reliable.
>Charlie,
>You don't need to check for MDOWN() at the point the Valid() fires, you can check the return value of SYS(1270) and compare it to another object reference to see if they are the same.
>
>For example, if I create a form where the user must enter a value before they leave a textbox, it would be nice if I let the user leave the textbox if they have clicked on the form's Cancel() button. I can place code in the valid of the textbox that checks to see if SYS(1270) is equal to ThisForm.cmdCancel, and if so, let them leave the textbox.
Charlie