PUBLIC oform1 oform1=NEWOBJECT("form1") oform1.Show RETURN DEFINE CLASS form1 AS form Top = 0 Left = 0 Height = 313 Width = 379 DoCreate = .T. Caption = "Form1" Name = "Form1" ADD OBJECT cmdexit AS commandbutton WITH ; Top = 143, ; Left = 147, ; Height = 27, ; Width = 84, ; Caption = "Exit", ; Name = "cmdExit" PROCEDURE KeyPress LPARAMETERS nKeyCode, nShiftAltCtrl *DEBUGOUT + TRANSFORM(nkeycode)+ "," + TRANS(nShiftAltCtrl) DO CASE CASE NOT BITTEST(nShiftAltCtrl,0) DEBUGOUT "W/o Shift Key: " + TRANSFORM(nKeyCode) CASE nKeyCode = 33 && shift + 1 DEBUGOUT "Your option was 1" CASE nKeyCode = 64 && shift + 2 DEBUGOUT "Your option was 2" CASE nKeyCode = 35 && shift + 3 DEBUGOUT "Your option was 3" CASE nKeyCode = 36 && shift + 4 DEBUGOUT "Your option was 4" CASE nKeyCode = 37 && shift + 5 DEBUGOUT "Your option was 5" CASE nKeyCode = 94 && shift + 6 DEBUGOUT "Your option was 6" CASE nKeyCode = 38 && shift + 7 DEBUGOUT "Your option was 7" CASE nKeyCode = 42 && shift + 8 DEBUGOUT "Your option was 8" CASE nKeyCode = 40 && shift + 9 DEBUGOUT "Your option was 9" OTHERWISE DEBUGOUT "Key code: " + TRANSFORM(nKeyCode) ENDCASE ENDPROC PROCEDURE cmdexit.Click Thisform.Release() ENDPROC ENDDEFINE>Have a strange problem here with the keypress event if a form, I have to capture a sequencial shift + n from the keyborad where n can be 1 to 8.