Visual Basic形式.close()方法

时间:2013-02-22 06:45:09

标签: vb.net vb.net-2010

我有以下代码段:

'Handle level specific properties
Select Case ScoreCard.CurrentDifficulty
    Case 1
        intImageCount = 2 'This is the number of images to show at any given time on screen +1

        'debug
        ScoreCard.CurrentDifficulty = 6
    Case 2
        intImageCount = 3 'This is the number of images to show at any given time on screen +1
    Case 3
        intImageCount = 5 'This is the number of images to show at any given time on screen +1
    Case 4
        intImageCount = 2  'This is the number of images to show at any given time on screen +1
    Case 5
        intImageCount = 5 'This is the number of images to show at any given time on screen +1
    Case 6
        frmLevel3_HouseOfMirrors.Show()
        Me.Close()
        Return
End Select

执行case 6时执行frm3_HouseOfMirrors.Show()并打开新表单。 Me.close也会执行但我的问题是脚本然后到达返回行。是不是me.Close()假设停止当前表单上的所有代码执行并从内存中卸载它自己?

3 个答案:

答案 0 :(得分:2)

只需拨打frmLvl3_HouseOfMirrors.ShowDialog()而不是.Show(),这将停止执行代码,直到关闭新表单。

或者如果要取消执行其余代码,请尝试Exit指令。你必须检测到你想要完成并将其添加到Sub之外,因为.Close()没有停止执行代码。

答案 1 :(得分:1)

不,“关闭”方法只是关闭表单,但程序执行将继续。如果要在表单关闭之前停止代码执行,可以将其设置为模态。

在VBA中它看起来像这样: frmLevel3_HouseOfMirrors.Show vbModal

答案 2 :(得分:0)

  

是不是me.Close()假设停止当前表单上的所有代码执行并从内存中卸载它自己?

没有。 Close完全按照它所说的做法:它关闭了表单的可视化交互式表示。 1 它不会直接影响代码执行。 确实确保调用Form_Closing然后调用Form_Closed。但其余的代码执行不受影响;特别是,当前的方法正常运行。之后,表单上的其他方法可能会被调用,也可能不会被调用(如上所述,ClosingClosed 将被调用


1 并且,是的,它会释放表单的资源,除非表单是通过ShowDialog而不是Show显示的。