我在窗体onload的时候要进行一些必要的配置文件检查,如果没有配置就不能打开该窗体,例如
    Dim dirtmp As String
    dirtmp = Dir(sPath & "\config.ini")
    If scftmp = "" Then
        StrFax = ""
        MsgBox "配置文件丢失
        Unload Me
    End If
报错说 object was unload  怎么办啊?
由于Active事件另要处理其他事情,不能写在那里面,否则问题就好解决了,现在要在onload里面怎么解决这个问题呢??

解决方案 »

  1.   

    用 main sub 加载窗体,检查过程放在 main sub 中
      

  2.   

    我这里测试,没有问题啊。
    object was unload  在哪里出来的?
      

  3.   

    ====================
    免费的学习交流网站,欢迎大家访问!
    http://www.j2soft.cn/
    http://j2soft.008.net/
      

  4.   

    不对的,在LOAD事件中不能写UNLOAD方法,对象还没有加载怎么就能卸载,我都试过好多次了
      

  5.   

    是啊,我也觉得奇怪啊,整个界面其他地方都还没写的,就才开始写这儿啊,而且 msgbox "sdf"也执行了,但end sub就出错了,我这是个MDI子窗口
    Private Sub Form_Load()
        Dim dirtmp As String
        dirtmp = Dir(sPath & "\config.ini")
        If scftmp = "" Then
            StrFax = ""
            MsgBox "配置文件丢失
            Unload Me
            MsgBox "sdf"
        End If
    End Sub
      

  6.   

    我也试了一下,普通的窗体是可以啊,但我这是MDI的啊,单步调试到End Sub就报错object was unloaded!!!!急 !!!!!!!!!!
      

  7.   

    晕,就在主窗体里面的一个菜单里面写 
    frm_Detail.Show这个窗体的onload事件里面写
    Private Sub Form_Load()
        Dim dirtmp As String
        dirtmp = Dir(sPath & "\config.ini")
        If scftmp = "" Then
            StrFax = ""
            MsgBox "配置文件丢失
            Unload Me
            MsgBox "sdf"  //这个也可以显示
        End If
    End Sub
    单步调试到 End Sub 就出错了, object was unloaded
      

  8.   

    你大概没有显示主窗体就直接显示子窗体了吧?这种情况下主窗体强制显示,消息堆栈中处于下面的情况
    ----------------
    主窗体:Form_Load
    子窗体:Form_Load
    ----------------
    所以你无法将子窗体的 Form_Load 中断掉。应该先启动主窗体,在主窗体的 Form_Load 进行检查,检查成功再显示子窗体。
      

  9.   

    换个事件
    Private Sub Form_Activate()
    或者
    Private Sub Form_GotFocus()
    写到这里面应该是可以的
      

  10.   

    不行,Activate里面我还要处理不同的事情,现在就是要放在onload里面啊!!!
      

  11.   

    不要用unload me
    用 unload 窗体名 试试看
      

  12.   

    不行,Activate里面我还要处理不同的事情,现在就是要放在onload里面啊!!!
    我晕,你不会定义一个blnChkLoad的变量啊
    Form_Load
    BLNCHKLOAD=TRUE
    IF  THEN
        
        
        BLNCHKLOAD=FALSE
    END IF
    END SUB
    Form_Activate
        IF BLNCHKLOAD=FALSE THEN UNLOAD ME
        。
        。
        。
    END SUB
      

  13.   

    加变量可以了,但是在load里面是否不能使用unload呢? 难道没有人知道??