在加载一个窗体的时候,如果在该窗体的load事件中直接把本窗体卸掉了,这时会在打开窗体的语句处造成个错误,这种情况该怎么解决?

解决方案 »

  1.   

    为什么要在Load中,把窗体卸载掉?
    建议在其他事件或过程后,处理卸载事件!
      

  2.   

    呵呵 这样做的话楼主代码会很乱的。
    最好在加载之前判断。如果是主窗口就使用 sub main 来加载窗口,加载前然后进行判断,是否要加载
      

  3.   

    load 事件里加第一行加on error resume next语句
      

  4.   

    工程.2个FORM,点FORM1的按钮,加载FORM2.代码如下form1里有个按钮
    Private Sub Command1_Click()
    Form2.Show vbModal
    End SubFORM2的代码:
    Private Sub Form_Activate()
    On Error Resume NextIf 1 = 2 Then
        Unload Me
    End IfEnd Sub
    这样的条件下,FORM2能加载,如果你改成1=1,那么FORM2闪一下就卸掉了,加载不了
      

  5.   

    把if语句转移一下吧,改成
    if x=y  then
        load form2
    else
        'nothing
    endif
      

  6.   

    你的问题?
    在加载一个窗体的时候,如果在该窗体的load事件中直接把本窗体卸掉了,这时会在打开窗体的语句处造成个错误,这种情况该怎么解决?只要屏蔽错误就好了! 
    拿zuoxingyu(激情成就梦想) 给你的答案来说:
    -------------------------------------------------------
    form1里有个按钮
    Private Sub Command1_Click()
    Form2.Show vbModal
    End SubFORM2的代码:
    Private Sub Form_Activate()
    On Error Resume NextIf 1 = 2 Then
        Unload Me
    End IfEnd Sub
    -----------------------------------------------------------
    思路是对了! 可是判断的地方错误了! 
    应该把错误处理语句放在 FORM1的命令按钮里!
    form1里有个按钮
    Private Sub Command1_Click()
    On Error Resume Next
    Form2.Show vbModal
    End SubFORM2的代码:
    Private Sub Form_Activate()
    If 1 = 2 Then
        Unload Me
    End IfEnd Sub
    这样做可以达到你想要做的效果! 给你的建议是,不用处理错误语句! 你不是要判断该窗体是否加载么? 直接在要打开的时候判断,而不应该是在打开窗体后在判断
    例题:
    FORM1的command1单击事件:
    if 条件 then  
    form2.show,1
    else 
    msgbox "条件不符合,不能打开"
    end if 如果不要msgbox 提示信息 可以直接判断:
    if 条件 then form2.show , 1
      

  7.   

    form1里有个按钮
    Private Sub Command1_Click()
    IF form2.canshow then
        Form2.Show vbModal
    endif
    End SubFORM2的代码:
    public function canshow as booleanend function
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html