如果只是关闭窗体,请调用该窗体的Close命令。
如果你将应用程序项目的启动窗体设顶成某个窗体,则调用该启动窗体的Close命令时,也就会结束该应用程序。
一般来说,要在任何时候结束应用程序,请调用Application.Exit命令。它会停止所有运行中的线程,并关闭应用程序窗体。它并不一定会强制结束应用程序。
一般是在线程内调用,并强制Application.Run返回。若只是要结束当前线程,则调用Application.ExitThread命令。
Application.Exit命令引发下列事件,并执行相关联的条件操作:
● 每一个以OpenForms属性表示的窗体都会引发FromClosing事件。可以通过将事件的FormClosingEventArgs参数的Cancel属性设定为True,取消这个事件。
● 如果一个或多个处理函数取消事件,Application.Exit就会返回而不再执行操作。否则,没一个打开的窗体都会引发FormClose事件,然后关闭所有执行中的线程和窗体。
下面是一个例子,如果textbox中不是1,则可以关闭窗体,如果是,则不能关闭窗体。
[vb]
view plain
copy
print
?
- PrivateSubForm1_Closing(ByValsenderAsObject,ByValeAsSystem.ComponentModel.CancelEventArgs)HandlesMyBase.Closing
- IfTextBox1.Text="1"Then
- e.Cancel=True
- EndIf
- EndSub
Private Sub Form1_Closing(ByVal sender As Object,ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If TextBox1.Text = "1" Then
e.Cancel = True
End If
End Sub
你可以使用End语句来立即结束应用程序。你可以将End语句放在程序任何位置,以便强制整个应用程序停止执行。End语句会关闭以Open语句打开的任何文件,并删除应用程序的所有变量。一旦没有其他程序使用这些数据时,而且也没有任何程序代码在执行时,应用程序就会立即关闭。
注意,End语句会突然停止程序代码的执行,而且不会调用Dispose或Finalize命令,也不会调用任何其他的程序代码,其他程序所使用的对象引用将会失效。如果End语句是位于一个Try或Catch语句块中,控制权将不会传递到相应的Finally语句块中。
Stop语句会暂停程序的运行,但它与End不同的地方是,它并不会关闭任何文件或删除任何变量(除非是在编译过的可执行文件中使用)
End语句会调用System命名空间的Environment类型的Exit命令。你必须拥有UnmanagedCode权限才能调用Environment.Exit命令,如果你并未拥有该权限,将会引发SecurityException异常