LPARAMETERS nKeyCode, nShiftAltCtrl DO CASE CASE nKeyCode = 18 .AND. nShiftAltCtrl = 0 && Page Up IF THISFORM.PAGEFRAME.ACTIVEPAGE > 1 THISFORM.PAGEFRAME.ACTIVEPAGE = THISFORM.PAGEFRAME.ACTIVEPAGE - 1 ELSE THISFORM.PAGEFRAME.ACTIVEPAGE = THISFORM.PAGEFRAME.PAGECOUNT ENDIF DO CASE *--This works fine when moving through pages using pageup the listbox *--is at the top of the list everytime on everypage. CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 1 THISFORM.PAGEFRAME.Page1.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 2 THISFORM.PAGEFRAME.Page2.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 3 THISFORM.PAGEFRAME.Page3.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 4 THISFORM.PAGEFRAME.Page4.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 5 THISFORM.PAGEFRAME.Page5.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 6 THISFORM.PAGEFRAME.Page6.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 7 THISFORM.PAGEFRAME.Page7.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 8 THISFORM.PAGEFRAME.Page8.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 9 THISFORM.PAGEFRAME.Page9.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 10 THISFORM.PAGEFRAME.Page10.controltop.SETFOCUS() ENDCASE CASE nKeyCode = 3 .AND. nShiftAltCtrl = 0 && Page Down *--This is where if the top control on the next page is a listbox *--the listbox is at the end of the list when the control receives *--focus IF THISFORM.PAGEFRAME.ACTIVEPAGE < THISFORM.PAGEFRAME.PAGECOUNT THISFORM.PAGEFRAME.ACTIVEPAGE = THISFORM.PAGEFRAME.ACTIVEPAGE + 1 ELSE THISFORM.PAGEFRAME.ACTIVEPAGE = 1 ENDIF DO CASE CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 1 THISFORM.PAGEFRAME.Page1.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 2 THISFORM.PAGEFRAME.Page2.SETFOCUS() THISFORM.PAGEFRAME.Page2.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 3 THISFORM.PAGEFRAME.Page3.SETFOCUS() THISFORM.PAGEFRAME.Page3.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 4 THISFORM.PAGEFRAME.Page4.SETFOCUS() THISFORM.PAGEFRAME.Page4.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 5 THISFORM.PAGEFRAME.Page5.SETFOCUS() THISFORM.PAGEFRAME.Page5.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 6 THISFORM.PAGEFRAME.Page6.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 7 THISFORM.PAGEFRAME.Page7.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 8 THISFORM.PAGEFRAME.Page8.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 9 THISFORM.PAGEFRAME.Page9.controltop.SETFOCUS() CASE THISFORM.PAGEFRAME.ACTIVEPAGE = 10 THISFORM.PAGEFRAME.Page10.controltop.SETFOCUS() ENDCASE OTHERWISE DODEFAULT() ENDCASEThe below works correctly. Example lostfocus of the last control on a page:
PRIVATE mkey mkey=LASTKEY() CLEAR TYPEAHEAD IF INLIST(mkey,5,15) && Up Arrow, Shift-Tab DODEFAULT() ELSE IF THISFORM.PageFrame.activePage=THISFORM.PageFrame.PageCount && on last page, move to 1st page THISFORM.PageFrame.activePage = 1 THISFORM.PageFrame.Page1.controltop.setfocus() ELSE && move to next page THISFORM.PageFrame.activePage=thisform.PageFrame.activepage + 1 PRIVATE lccommand lccommand = "THISFORM.PageFrame.Page"+ALLTRIM(STR(THISFORM.PageFrame.ActivePage))+".controltop.setfocus()" &lccommand ENDIF ENDIF>Hi Tracy.