请问,如何用程序方法关闭已经存在的VFP表单
我做的系统里面通过菜单来调用表单,目前的代码可打开表单,可是有许多个表单的关闭必须要手动通过按钮关闭,但是我的表单大小不一样,多个表单同时显示会显得凌乱,请问高手有没有方法可让我打开新的表单之前把之前的表单给关闭掉。(顺便问下,能否做一个功能,就是我打开某个表单的时候,这个表单必须关闭后才能进行其他的操作,否则这个打开的表单就独占了活动窗口)
下面是我的一段调试代码
LOCAL oErr AS Exception
#DEFINE CL CHR(13)+CHR(10) &&定义常量CL,取代回车和换行
TRY
AEVENTS(aImageClick,0) &&获取事件源
cCaption=ALLTRIM(aImageClick[1].Caption)&&获取事件源的Caption属性
cNameCaption=ALLTRIM(aImageClick[1].NameCaption)&&获取事件源的自定义属性NameCaption
IF FILE(SYS(5)+SYS(2003)+"\WebForm\&cNameCaption..scx") &&判定名称和NameCaption相同的表单是否存在
IF Wexist(cNameCaption)=.t. &&判定表单窗体是否存在
Activate Windows &cNameCaption. &&显示并激活表单
ELSE
DO Form SYS(5)+SYS(2003)+"\WebForm\&cNameCaption..scx" Name &cNameCaption.&&运行表单cNameCaption
ENDIF
ENDIF
CATCH TO oErr
oErr.UserValue = "二级菜单调用的表单"
LOCAL cText as String
cText=;
ALLTRIM("错误号:"+STR(oErr.ErrorNo))+CL+;
ALLTRIM("行号:"+STR(oErr.LineNo))+CL+;
ALLTRIM("错误信息:"+oErr.Message)+CL+;
ALLTRIM("错误所在的过程/程序:"+oErr.Procedure)+CL+;
ALLTRIM("详细资料:"+oErr.Details)+CL+;
ALLTRIM("水平堆栈:"+STR(oErr.StackLevel))+CL+;
ALLTRIM("行内容:"+oErr.LineContents)+CL+;
ALLTRIM("用户:"+oErr.UserValue)+CL+CL
STRTOFILE(cText ,SYS(5)+SYS(2003)+'\ErrorLog\ErrorTxt.txt',.t.)
MESSAGEBOX(oErr.UserValue+",详情请参看错误日志",48,"信息提示")
CLEAR EVENTS
QUIT
ENDTRY