怎样才能彻底 UNLOAD ME??
我写了 UNLOAD ME,然后在任务管理器的应用程序里还会存在,这样就占用系统资源?
有没有什么代码?可以做到这一点.

解决方案 »

  1.   

    END是可以...但.
    用起来,不太好..呵呵.只是我感觉面 而以吧.有时程序容易出错
    我觉得 楼主所说的可能性是,包含其它窗体,并没有把其它窗体卸载噢!
    也可以用:For Each FormName In Forms
        Unload FormName
    Next来把,所以有的窗体卸载了!
      

  2.   

    在form_unload事件中加:
    set form=nothing
      

  3.   

    unload后仍在内存中存在,说明有窗体没被关掉,可用以下语句实现:
        For Each objForm In Forms
            Unload objForm
            Set objForm = Nothing
        Next objForm
      

  4.   

    For Each objForm In Forms
            Unload objForm
            Set objForm = Nothing
        Next objForm严重同意
      

  5.   

    不规范的写法:
       FrmTest.Show 1
    规范的写法:Dim ObjForm as New FrmTestObjForm.Show 1Unload ObjForm
    Set ObjForm = Nothing使用规范写法时就不会占用资源。另外,在主窗口退出后,要用循环语句卸载所有窗口,卸载所用到的所有全局对象及变量。
      

  6.   

    彻底 UNLOAD ME?
    你对UNLOAD ME的能力有所怀疑?你应该对对自己的程序怀疑才对,是你的代码存在漏洞!没有关闭程序,说明你的程序有窗体没有卸载,可能是别的隐藏窗体,也可能就是Me。用End,数据极不安全,但肯定可Kill Me
    用For Each虽较安全,但若存在窗体间的循环加载,仍不能卸干净总之一点,你必须找到窗体没卸干净的真正原因,这才是一个好程序的基础,那时再用哪种方法结束都行。
      

  7.   

    来个彻底的:unload me
    set me = nothing
    end
      

  8.   

    同意楼上,比如是否使用了未加载窗体的属性导致隐式Load,
    是否有多个对象变量指向同一个对象而没有解除引用等等~
      

  9.   

    晕,有插队的,我说的同意楼上,是指homezj(小吉)的回复~
      

  10.   

    晕,UNLOAD ME,本身就是彻底的,
    "任务管理器的应用程序里还会存在"
    是因为有其它的资源没有释放,和这个Form无关
    End只是强制退出吧,并没有释放资源~
      

  11.   

    必须先把所有的对象实例清除
    set form=nothing '包括程序中所有的对象实例
    end
      

  12.   

    To Begin2008(重头再来):
    使用规范写法时就不会占用资源。不知道你所说的不会占用资源是指什么资源?
    不规范的写法:
       FrmTest.Show 1
       ... ...
       UnLoad FrmTest    '你可别把这句话给忘了
    规范的写法:Dim ObjForm as New FrmTestObjForm.Show 1
    ......
    Unload ObjForm
    Set ObjForm = Nothing这两种写法对资源占用会有区别?不明白。
      

  13.   

    //不规范的写法:
    //   FrmTest.Show 1
    直接用Form名称的话,是系统自动实例化的,也是系统自动卸载的,
    我也不明白这有什么不规范?
      

  14.   

    To viena(维也纳nn-实心木头人):
       使用不规范的写法(即直接直接用Form名称的话,是系统自动实例化的),在系统自动卸载时,对对象的卸载是不充分的,释放系统资源也不充分。   VB是一种纵容式语言,有时为了方便简单,就造成写法上的不规范。另外,Set ObjForm = New FrmTest 这样的语法对没有基础的初学者来说也不好理解。
      

  15.   

    如果用END是不是太"狠"了一点?
    全部的窗体都没了,如果不想中止主程序呢?
      

  16.   

    有时候因为第三方控件的自身 bug 时常造成退不掉,用 ExitProcess 函数最彻底了。ExitProcess 传递的参数表示进程退出码,按一般的约定 0 正常终止,非 0 异常终止。
      

  17.   

    如果真只是要卸载某一个指定的窗口,可以这样.
        Dim iFrom As Form
        For Each iform In Forms
            If iFrom.Text = "想关闭的窗口TEXT属性段字符串" Then Unload iform
        Next如果要卸载所有窗口,稍微改变点就可以了
        Dim iFrom As Form
        For Each iform In Forms
            Unload iform
        Next但按你的话看来
      //怎样才能彻底 UNLOAD ME??
      //我写了 UNLOAD ME,然后在任务管理器的应用程序里还会存在,这样就占用系统资源?
    应该是你要结束这个进程,所以建议使用 End。
      

  18.   

    不好意思,搞错分区了,当这是vb.net分区了vb6里的From.Caption 等价于 Vb.net里的From.Text第一段改成
        Dim iFrom As Form
        For Each iform In Forms
            If iFrom.Caption = "想关闭的窗口TEXT属性段字符串" Then Unload iform
        Next
    就可以了...