LPARAMETERS nKeyCode, nShiftAltCtrl LOCAL nInsert, cNewText, nStart nInsert = THIS.SelStart IF This.SelLength = 0 nStart = MAX(nInsert,0) ELSE nStart = MAX(nInsert,0) ENDIF DO CASE CASE nKeyCode = -4 && F5 cNewText = LEFT(THIS.Value, nStart) + allt(userctrl.f5) + substr(THIS.Value, nStart+1) This.Value = cNewText This.SelStart = nStart + Len(allt(userctrl.f5)) NODEFAULT CASE nKeyCode = -5 && F6 cNewText = LEFT(THIS.Value, nStart) + allt(userctrl.f6) + substr(THIS.Value, nStart+1) This.Value = cNewText This.SelStart = nStart + Len(allt(userctrl.f6)) NODEFAULT CASE nKeyCode = -6 && F7 cNewText = LEFT(THIS.Value, nStart) + allt(userctrl.f7) + substr(THIS.Value, nStart+1) This.Value = cNewText This.SelStart = nStart + Len(allt(userctrl.f7)) NODEFAULT CASE nKeyCode = 48 .and. nShiftAltCtrl = 2 && Cntl+0 pressed * do nothing at all NODEFAULT OTHERWISE DODEFAULT() ENDCASEand now the Enter key won't work properly. If I hit Enter, the cursor goes to the next line, but when I start typing again, the text comes out at the end of the previous line, instead of at the beginning of the new line.