VB.net:如何立即关闭表单?

时间:2012-02-24 03:18:38

标签: vb.net-2010

我在表格上有这个代码:

Function f1 as boolean

Try
   ------------
   -----------
    if condition
        return true
    else
        return false
    end if
Catch ex as Exception
   Me.close
End try

End function


Private sub s1

if f1 then

   instruction 1
else
   instruction 2
end if


End sub



But if an exception occur inside f1 , the instruction Me.close 

不会立即关闭表单,但之后     执行s1 sub上的指令2。     我该如何立即关闭表格?

Thank you!

2 个答案:

答案 0 :(得分:0)

根据您打开表单的方式,您应该执行Me.dispose

来自MSDN的评论: 表单未在Close上处理时的两个条件是

  

(1)它是多文档界面(MDI)应用程序的一部分,并且   表格不可见;和
  (2)您已使用显示表格   ShowDialog的。在这些情况下,您需要手动调用Dispose   标记所有表单的垃圾收集控件。

答案 1 :(得分:0)

Me.Close()不会停止执行。由于您已处理异常,因此在调用f1后继续执行。如果要停止执行,则必须允许异常继续:

Function f1 As Boolean
    Try
        '------------
        '-----------
        If condition Then
            Return True
        Else
            Return False
        End If
    Catch ex As Exception
        Me.Close()
        Throw ' causes calling routines to stop executing as well
    End Try
End Function