What now happens is that a local object reference is created. When the routine stops this var is released Better create a public var and store the reference to the form to this var. When you release the form, don't forget to release the public var.
Public oMyForm
oMyForm = CreateObject('MyForm')
oMyForm.Show()