两个窗体:
form1 中有一个按扭,单击按牛 显示form2,关闭form1
sub command1_clik()
form2.show
unload me
end subform2中form2_load()
********
此处为一系列的运算
最后根据flag的值进行判断 若flag="err"则显示form1,关闭form2,若flag="ok",显示fom2窗体
if flag="err" then
form1.show
unload me
endif
end sub在这里系统提示我,对象已卸载,请问改如何做?????????

解决方案 »

  1.   

    这样试试
    sub command1_clik()unload me
    form2.show
    end subform2中form2_load()
    if flag="err" thenunload me
    form1.showendif
    end sub
      

  2.   

    to::wzzwwz(棒子面窝头) ( ) 信誉:100 不行,问题相同,大家帮帮忙,代码不多
      

  3.   

    试试如下代码:
    form1中 
    sub command1_clik()
    form2.show
    form1.hide   (我想unload me是将窗体卸载了,系统当然提你对象被卸载,用hide是将form1隐藏起来。)
    end subform2中
    if flag="err" then
    form1.show
    form2.hide
    endif
    end sub
      

  4.   

    把unload me 改为me.hide这么做不会出现,对象已卸载的提示,但是form2确显示在,form1的前面啊.我想只显示form1
      

  5.   

    wzzwwz(棒子面窝头)的当然不行啦,要操作的窗体先被卸载了怎么运行下面的程序呀,要先将要显示的窗体调出来,才隐藏自己本身嘛!
      

  6.   

    把unload me 改为me.hide这么做不会出现,对象已卸载的提示,但是form2确显示在,form1的前面啊.我想只显示form1
    如果是这样那就:form1中 
    sub command1_clik()
    form2.show
    form1.hide   (我想unload me是将窗体卸载了,系统当然提你对象被卸载,用hide是将form1
                   隐藏起来。)
    end sub
    form2中
    if flag="err" then
    form1.show
    unload.me
    endif
    end sub
      

  7.   

    lina360311() 
    你可以试一试,下面的代码照样运行
      

  8.   

    把form_load 里的程序拷到Activate事件里去试试
    Private Sub Form_Activate()
      

  9.   

    这样可以,在 Form2 窗体中加一个定时器,然后设置 100 毫秒的间隔
    加入代码
    Private Sub Timer1_Timer()
    If flag = "err" Then
        Unload Me
        Form1.Show
    End If
    End Sub
      

  10.   

    Form1 的代码Option ExplicitPrivate Sub Command1_Click()
        flag = "err"
        Unload Me
        Load Form2 '或者 Form2.Show
    End SubForm2的代码Option ExplicitPrivate Sub Timer1_Timer()
    If flag = "err" Then
        Unload Me
        Form1.Show
    End If
    End Sub
      

  11.   

    只要是在 Unload 后面的代码中没有直接退出过程或者函数的代码,比如 Exit Sub 或者 Exit Function ,那么后面的代码会继续执行
    比如:Option ExplicitPrivate Sub Form_Load()
    Unload Me
    MsgBox "还在运行"
    End Sub
    这样就不行了
    Option ExplicitPrivate Sub Form_Load()
    Unload Me
    Exit Sub
    MsgBox "还在运行"
    End Sub
      

  12.   

    wzzwwz(棒子面窝头) :
    不必弄得那么复杂吧。100毫秒过了不会再form2吗????没试过。
      

  13.   

    干嘛要写在load事件里呢?写在activate事件里不是很好
      

  14.   

    lina360311() 
    我的那些代码已经运行了,其实不麻烦
    就是把Form2中Load的代码移到了 定时器 控件中
      

  15.   

    ljhdi() ( activate 和load有什么不同
      

  16.   

    楼主:用 wzzwwz(棒子面窝头) 的方法也问题依旧吗??
      

  17.   

    Activate 当一个对象成为活动窗口时发生
    load 此事件是在一个窗体被装载时发生
      

  18.   

    我的代码你用了吗??
    MSDN 
    Activate、Deactivate 事件
          Activate -当一个对象成为活动窗口时发生。
    Deactivate -当一个对象不再是活动窗口时发生。 
    语法Private Sub object_Activate( )Private Sub object_Deactivate( )object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。说明一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。Activate 事件仅当一个对象可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Load 语句加载的窗体是不可见的。Activate 和 Deactivate 事件仅当焦点在一个应用程序内移动时才发生。在另一个应用程序中将焦点移向或移离一个对象时,不会触发任何一个事件。当一个对象卸载时,不会发生 Deactivate 事件。Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。对 MDI 子窗体来说,这些事件仅当焦点从一个子窗体改变到另一个子窗体时才会发生。例如,在一个带有两个子窗体的 MDIForm 对象中,当焦点在子窗体之间移动时,它们能接收这些事件。然而,当焦点在一个 MDI 子窗体和一个非 MDI 子窗体之间移动时,父 MDIForm 将接收 Activate 和 Deactivate 事件。如果一个由 Visual Basic 建立的 .exe 文件显示一个对话框,此对话框也是由建立在 Visual Basic 中的一个 .dll 文件所创建的,那么.exe 文件的窗体将获得 Deactivate 和 LostFocus 事件。这可能是不期望的,因为下列情况下不应获得 Deactivate 事件: 如果对象是一个过程之外的部件。
    如果对象不是用 Visual Basic 编写的。
    在开发环境中调用一个 Visual Basic 建立中的 DLL 时。 
     
    Load 事件
          此事件是在一个窗体被装载时发生。当使用 Load 语句启动应用程序,或引用未装载的窗体属性或控件时,此事件发生。语法Private Sub Form_Load( )Private Sub MDIForm_Load( )说明通常,Load 事件过程用来包含一个窗体的启动代码—例如,指定控件缺省设置值,指明将要装入 ComboBox 或 ListBox 控件的内容,以及初始窗体级变量等。Load 事件是在 Intialize 事件之后发生。当在代码中引用一个未装载窗体的属性时,该窗体自动被装载但不自动成为可视窗体,除非 MDIChild 属性被设置为 True。如果一个 MDIForm 对象未被装载而一个 MDI 子窗体却被装载,则 MDIForm 和该子窗体都自动被装载并且都将成为可视的窗体。除非使用 Show 方法或将 Visible 属性设置为 True,否则其它窗体都不能显示出来。MDIForm Load 事件中的下列代码可自动装载一个 MDI 子窗体(假设 Form1 本身的 MDIChild 属性被设置为 True):Dim NewForm As New Form1
    NewForm.Caption = "New Form"   '.‘按引用装载窗体’。由于所有子窗体在装载时都可视,对 Caption 属性的引用将装载该窗体并使其可视。注意 当为诸如 Activate,GotFocus,Paint 和 Resize 等相关事件创建过程时,要确保它们的操作不冲突,而且它们也不会导致循环的事件。