1

我有以下代码片段:

'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()应该停止当前表单上所有代码的执行并从内存中卸载其自身吗?

4

3 回答 3

2

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

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

于 2013-02-22T08:13:52.820 回答
1

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

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

于 2013-02-22T07:03:22.727 回答
0

me.Close()应该停止当前表单上所有代码的执行并从内存中卸载其自身吗?

Close,正如它所说的那样:它关闭了表单的可视化、交互式表示。1它不直接影响代码执行。但是,它确实确保调用Form_Closingthen 。Form_Closed但是其余的代码执行不受影响;特别是当前方法运行正常。之后,表单上的其他方法可能会或可能不会根据需要被调用(并且,如前所述,ClosingClosed 调用)。


1而且,是的,它会释放表单的资源,除非表单显示为 viaShowDialog而不是 plain Show

于 2013-02-26T10:38:42.723 回答