VB 做了个小软件,主面板窗体代码里面用了end,偶尔关不掉程序,在任务管理器中还可以看到,不知道为什么?
 不知道怎么解决??
非常非常谢谢哪位高手指点!!!补充:用了下面的代码也偶尔关不掉!!!??? 
Dim I As Long 
For I = Forms.Count - 1 To 0 Step -1 
    Unload Forms(I) 
Next I 
End

解决方案 »

  1.   

    '卸载所有的窗体,释放所有的对象
    Public Sub UnloadALLForm()
           Dim Frm As Form
           For Each Frm In Forms
               Unload Frm
           Next
           end 
    End Sub
      

  2.   

    还有,你卸载窗体时,释放对象没有.例如: Set Obj=Nothing,释放所有对象都要这样写.
      

  3.   

    Module1.bas 里面的有以下代码:
      Public adoCon As ADODB.Connection
      Public adoRst As ADODB.Recordset
      Public strsql As String  Public Sub main()
      Set adoCon = New ADODB.Connection
          adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/shiyan.mdb;Persist Security Info=False"
      Set adoRst = New ADODB.Recordset
      End Sub
    主面板里的有以下代码:
      Private Sub Form_Load()
      On Error GoTo wrong1
            ......
            Call main
            Set adoRst = adoCon.Execute("select * from 同学录")
            ......
         Exit Sub
      wrong1:
      MsgBox "主窗体出错,可能数据库被非法修改!", vbInformation, "提醒": End
      End Sub
    所有的窗体都是这样来调用ACESS数据库的:
            Call main
            Set adoRst = adoCon.Execute("select * from 同学录")
            ......
    难道就是这个原因?要释放对象!不知道怎么释放啊!??
    请指点啊  非常非常谢谢拉
      

  4.   

    请问 你的程序起点是Form 还是Sub Mian()?
      

  5.   

    private sub Test()
    dim o as new form1o.caption = "测试窗体"
    end sub
    '这样就无法退出进程,因为form1的实例o没有释放
    end sub
    '尽量不要使用end
      

  6.   

    在每个form的unload事件中加上:
    set form1=nothing
      

  7.   

    我的相反,用Unload Form1ce 卸载窗体,但进程中还在,用End既可以卸载窗体,又可以关闭进程,很奇怪。
      

  8.   

    unload后FORM,不能再使用form里的任何东西,不然,FORM又被自动LOAD了
      

  9.   

    这也是VB语法自由的一个坏处,对对象的引用不用预先声明
    尽量不要写这样的程序:
    Form2.Text1.Text = Form1.Text1.Text
      

  10.   

    这也是VB语法自由的一个坏处,对对象的引用不用预先声明
    尽量不要写这样的程序:
    Form2.Text1.Text = Form1.Text1.Text
      

  11.   

    路过.............反对用END...支持一切尽在掌握......不出现意外不可控流程.
      

  12.   

    我也路过下,   End 语句提供了一种强迫中止程序的方法。Visual Basic 程序正常结束应该卸载所有的窗体。只要没有其它程序引用该程序公共类模块创建的对象并无代码执行,程序将立即关闭。unload 注意 在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。
    只有在运行时添加到窗体上的控件数组元素才能用 Unload 语句卸载。重新加载被卸载的控件时,其属性会被重新初始化。