Would it be possible to move the code from the LostFocus to the Valid method and change NODEFAULT to RETURN .F. ? This way the data is validated before losing focus.
LOCAL ltDate asdatetime
ltDate = CTOT(DTOC(DATE(1900,1,1) - 2 + THIS.DatePicker.DATE) + " 07:00:00 AM")
IFthis.ValidateDate(m.ltDate)
this.SetDates (m.ltDate)
ELSERETURN .F. && prevent leaving focus from this controlENDIF