如何防止应用程序退出时发出 "Error" 声音(从使用 ShowDialog 调用的表单)

How to prevent "Error" sound on application exit (from a form called with ShowDialog)

我正在创建 VB.Net 具有多个表单的应用程序。在每个表单上都有一个 return 到前一个表单的按钮以及一个完全退出应用程序的按钮。出于某种原因,无论我如何尝试退出应用程序,它在退出时总是会播放 Media.SystemSounds.Hand(Windows "Error" 声音),这似乎意味着出现了问题。

我尝试过以多种方式退出应用程序,例如:

需要注意的重要一点是,这只会在使用 ShowDialog() 打开当前表单时发生,而不会在使用 Show(Me) 调用当前表单时发生。阅读有关 Show 和 ShowDialog 之间差异的互联网,几乎所有提供的信息都只是引用模态和非模态形式之间的差异,这两种形式(无论出于何种原因我都可以告诉)都不会导致所述错误声音。我应该能够调用模式窗体并干净地退出应用程序而不会产生错误声音。

我知道在英语中,在关闭应用程序之前应该在主窗体而不是对话框窗体上似乎是有道理的,但是如果唯一的区别是模态和非模态,那么这就没有意义了我(并且 ShowDialog 应该重命名为 IMO)。有任何想法吗?

一句话:我希望在从使用 ShowDialog[= 调用的表单关闭应用程序时能够干净地退出应用程序(没有 "Error" 声音) 35=]

这很可能是由于在 ShowDialog 窗体仍处于活动状态的情况下关闭时试图将焦点传递给父窗体而引起的,并且声音实际上是您尝试此焦点更改时发出的警告声音。在关闭其父窗体以及整个应用程序之前尝试关闭 ShowDialog。这样焦点自然会在应用程序退出前传回父窗体