* form_unintended_move.prg && run this and then activate the new form, e.g. use Ctrl+F1 && repeatedly, to make it jump #define B_WORKAROUND .f. PUBLIC oForm as Form oForm = CREATEOBJECT('TestForm') oForm.Show() oForm.Move(_screen.Width-20,0) * form with grid does not want to move so far, * so we move it manually ACTIVATE WINDOW command KEYBOARD 'oForm.Left = oForm.Left + 1' KEYBOARD '{ENTER}' RETURN DEFINE CLASS TestForm as Form PROCEDURE Init CREATE CURSOR temp (f1 I, f2 I) INSERT INTO temp VALUES (1,1) This.AddObject('oGrid','TestGrid') This.oGrid.Visible = .T. ENDPROC ENDDEFINE DEFINE CLASS TestGrid as Grid #if B_WORKAROUND PROCEDURE When RETURN Thisform.Left < _screen.Width - 50 ENDPROC #endif ENDDEFINE * eop