I still haven't been able to determine what causes this strange behavior, but I have been able to correct the issue when it happens by checking for chr(255) in the field and then programmatically pressing the windows key twice for the user.
IF this.value = CHR(255)
#DEFINE VK_LWIN 0x5B
#DEFINE VK_RWIN 0x5C
#DEFINE KEYEVENTF_KEYUP 0x2
DECLARE keybd_event IN Win32API ;
SHORT bVk, SHORT bScan, INTEGER dwFlags, INTEGER deExtraInfo
keybd_event(VK_LWIN,0x5B,0,0)
keybd_event(VK_LWIN,0x5B,KEYEVENTF_KEYUP,0)
=INKEY(.3)
keybd_event(VK_LWIN,0x5B,0,0)
keybd_event(VK_LWIN,0x5B,KEYEVENTF_KEYUP,0)
CLEAR DLLS keybd_event
this.value = " "
WAIT WINDOW "Please enter the payment method again." NOWAIT
RETURN 0
ENDIF
.·*´¨)
.·`TCH
(..·*
010000110101001101101000011000010111001001110000010011110111001001000010011101010111001101110100
"When the debate is lost, slander becomes the tool of the loser." - Socrates
Vita contingit, Vive cum eo. (Life Happens, Live With it.)
"Life is not measured by the number of breaths we take, but by the moments that take our breath away." -- author unknown
"De omnibus dubitandum"