Application.Exit() 在使用表单关闭方法最小化到托盘时不起作用

Application.Exit() not working when using form closing methods to minimise to tray

我正在使用此代码在按下 X 按钮时将表单最小化到托盘

Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    NotifyIcon1.Visible = True
    NotifyIcon1.Icon = SystemIcons.Application
    NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
    NotifyIcon1.BalloonTipTitle = "Running In the Background"
    NotifyIcon1.BalloonTipText = "Application is running in the Background. Double click it to maximize the form"
    NotifyIcon1.ShowBalloonTip(50000)
    Me.Hide()
    ShowInTaskbar = True
    e.Cancel = True
End Sub

我也有一个 Quit 按钮,它实际上会退出应用程序,但我认为它使用上面的代码来最小化表单。

Private Sub btn_Quit_Click(sender As Object, e As EventArgs) Handles btn_Quit.Click
    Dim confirm As DialogResult = MessageBox.Show("Are you sure you wish to Exit the App?", "Exit Application?", MessageBoxButtons.YesNo)
    If confirm = DialogResult.Yes Then
        Application.Exit()
    End If
End Sub

如何在使用 退出 按钮时覆盖 FormClosing 子项?

我尝试使用 End,但也没有用

您应该使用传递给 Form_Closing 处理程序的 FormClosingEventArgs。它会告诉您是否有人试图关闭表单,或者应用程序是否正在退出。还有其他原因,您可以查看

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    Select Case e.CloseReason
        Case CloseReason.ApplicationExitCall
            e.Cancel = False
        Case CloseReason.FormOwnerClosing
            NotifyIcon1.Visible = True
            NotifyIcon1.Icon = SystemIcons.Application
            NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
            NotifyIcon1.BalloonTipTitle = "Running In the Background"
            NotifyIcon1.BalloonTipText = "Application is running in the Background. Double click it to maximize the form"
            NotifyIcon1.ShowBalloonTip(50000)
            Me.Hide()
            ShowInTaskbar = True
            e.Cancel = True
    End Select
End Sub