none
请教大哥大姐们一个问题,我的程序不知道什么原因,生成一个exe文件后运行,正常退出(程序中的退出按钮)后,进程里没有,但是要是中途点那个红叉(关闭)退出后,进程里还有,请问这是什么原因呀?跟踪程序,它们执行的路径都 是一样的,但结果却不一样………… RRS feed

  • 问题

  • 请教大哥大姐们一个问题,我的程序不知道什么原因,生成一个exe文件后运行,正常退出(程序中的退出按钮)后,进程里没有,但是要是中途点那个红叉(关闭)退出后,进程里还有,请问这是什么原因呀?跟踪程序,它们执行的路径都 是一样的,但结果却不一样…………

    2007年8月10日 6:07

答案

  • 你的程序中应该有多个模块,比如不止一个窗体,某个窗体包含有QueryUnload事件的处理过程。正常退出(程序中的退出按钮)后,主窗体都会等待子窗体的QueryUnload事件的处理完毕才执行Unload退出程序,但是要是中途点那个红叉(关闭)退出后,主窗体不等待子窗体的QueryUnload事件的处理直接执行Unload退出程序。

     

    2007年8月10日 6:12

全部回复

  • 你的程序中应该有多个模块,比如不止一个窗体,某个窗体包含有QueryUnload事件的处理过程。正常退出(程序中的退出按钮)后,主窗体都会等待子窗体的QueryUnload事件的处理完毕才执行Unload退出程序,但是要是中途点那个红叉(关闭)退出后,主窗体不等待子窗体的QueryUnload事件的处理直接执行Unload退出程序。

     

    2007年8月10日 6:12
  •  

    VB2005 里的如果是多个窗体的,那么只有关闭启动窗体才能关闭程序,一般会隐藏它,在关闭程序的时候再在窗体的closing事件里调用一个关闭它的就行拉
    2007年11月5日 12:21
  •  

    通常可以写一个类来控制自己程序的进程和窗体 可以通过标识 数组等

    这样在关闭程序时候 可以通过返回的状态值来结束隐藏窗体

    就象程序在结束时 建议使用unload而不要使用end一样

    合理的分配调用资源 是同样也是一个程序好坏的关键

     

    给个关闭所有子窗体的示例作为参考

    Dim   frm   As   Form   
         For   Each   frm   In   VB.Forms  
                      If   frm.Name   <>   "MDIFRMName"   Then  
                              Unload   frm 
                      End   If   
         Next

    2007年12月12日 6:34