I'm affraid that if you want to avoid the deletion of the text in the control within the keypress event you'll have to verify more that you think. the backspace key, the space key when the text is selected, so teke note of this too
.......
DO WHILE .T.
ME.Work()
ENDDO