What I do is this:
In Gotfocus event:
This.Tag = ""
In Interactivechange:
This.Tag = "T" && Or any char than you want
In Valid:
Local lReturn
If This.Tag = "T"
* Here come your valid code
* and modifi the lReturn Value
Else
lReturn = .T.
EndIf
Return lReturn
Be fast like the Fox
Be free like the Penguin
Se Rápido como el Zorro
Se libre como el Pingüino