有时,当我使用form.close()调试程序时,虽然已关闭表单,但该应用程序仍在运行。使用MSGBOX函数时,我注意到这种行为。

我没有线程或计时器运行,那么关闭.NET应用程序的最佳方法是什么?我正在使用vb.net。

谢谢

答案

您描述的情况很腥。每当您关闭程序的启动表格时,整个应用程序都应自动退出,包括关闭所有其他开放表格。确保您要关闭正确的表格,并且不应该遇到任何问题。

另一种可能性是您更改了项目(使用其属性页面),直到全部 打开的窗户已关闭。最后的 剩余的开放表格已关闭。Close的方法全部您在应用程序过程中显示的表单,而不仅仅是启动/主表单。

第一个设置是默认原因是出于某种原因,如果您更改了它,则可能要回去修复它。
到目前为止,它是正常应用程序最直观的模型,并且可以完全防止您描述的情况。为了使其正常工作,请确保您已经指定了主要的形式为"启动表单"(而不是溅出屏幕或登录表单)。

我正在谈论的设置在这里突出显示:

Visual Studio Project Properties

但主要是,请注意you should never have to call Application.Exit in a properly-designed application。如果您发现自己必须这样做才能使程序完全关闭,那么您做错了什么。只要您有充分的理由,这样做本身并不是一个不好的做法。其他两个答案无法解释这一点,因此我觉得充其量是不完整的。

来自: stackoverflow.com