有一个Login的普通窗口,登录后是MDI窗口,在MDI窗口的菜单下有个重新登录功能,我的代码是:
Unload mdiMain
frmLogin.Show
但是不正确,怎么写才正确呢?

解决方案 »

  1.   

    在代码里添加:
    Private Sub Form_Unload(Cancel As Integer)
    If MsgBox("您确认要退出系统么?", vbOKCancel + vbExclamation, "警告") = vbOK Then
       Unload Me
       End If
    End Sub
    现在就可以执行你上面的代码了!
      

  2.   

    hanstins的方法毫无一问是正确的
      

  3.   

    hanstins的方法虽然看起来是真的,但内存里的还存在当前程序,根本达不到
    系统重新登陆时的效果!
      

  4.   

    简单地可以这样做:Private Sub Form_Unload(Cancel As Integer)
      If MsgBox("您确认要退出系统么?", vbOKCancel + vbExclamation, App.Title) = vbOK Then
        Unload Me
        loginFrm.show
      End If
    End Sub
      

  5.   

    建立一个模块,添加Main()过程,启动对象用此过程,注销登陆时卸载所有窗体(除了有END语句的窗体要处理下,比如判断注销时不执行END语句),然后通过模块的过程逐个重新加载需要加载的窗体,如加载frmLogin
      

  6.   

    不如直接調用login窗口,成功登陸就關閉login窗口,登陸不成功給出提示,按退出login窗口時關閉整個應用程序
      

  7.   

    看你重新加载程序时要初始化的代码在那里执行的了,是在initialize事件中还是在load事件中了,若果是在load事件中执行的话用unload卸载然后再load加载可以达到你要的目的。
    如果是在initialize事件中执行的话,你用unload卸载再用load加载是肯定达不到你要的目的的,原因是initialize事件在软件中从开始运行到最后结束只执行一次,不管你中途执行了多少此的unload或load。
       建议楼主initialize->load->show.
      

  8.   

    我想有个简单的办法,你把主窗体的LOAD事件的全部内容写成一个方法,重新登录的时候把登录窗体用模式的方法显示,验证成功后再调用LOAD事件的方法,重新初使化一下就可以了。