I use the keypress event more often for 2 reasons. You can't setfocus to a control from valid() and valid() fires whenever the control loses focus, which is rarely a desired behavior. The valid event is best used when checking for a condition that you cannot allow the user to escape from at any time no matter what.
Eric Kleeman - EDS Consulting Services
MCP Visual FoxPro
MCSD C#.NET
Hua Hin Thailand
Los Angeles California