我有一個在系統托盤圖標中運行的單窗口窗體應用程序。如果用戶按窗口窗體的X按鈕,消息框顯示爲是且否(是 - >關閉表單---否 - >將表單保持在系統托盤圖標中運行)。 我想,以防止該方案,當用戶打開應用程序的另一個實例時,已經正在運行,所以我已經使用這個代碼的實例:Vb.net中的Application.Exit()和FormClosing事件
If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).Length> 1 Then
MessageBox.Show("Another instance is running", "Error Window", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation)
Application.Exit()
End If
的問題是,當我想測試此消息顯示,但在我按下ok後,出現一個新的消息框(來自Private Sub Form_FormClosing的一個)。如果我選擇否,我將不得不實例運行! 我讀過Application.Exit觸發Form_FormClosing事件。
有沒有可能取消觸發Form_FormClosing事件,或者我做錯了什麼?
「這是的FormClosing程序
Private Sub Form_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Try
Dim response As MsgBoxResult
response = MsgBox("Are you sure you want to exit", CType(MsgBoxStyle.Question + MsgBoxStyle.YesNo, MsgBoxStyle), "Confirm")
'If the user press Yes the application wil close
'because the application remains in taskmanager after closing i decide to kill the current process
If response = MsgBoxResult.Yes Then
Process.GetCurrentProcess().Kill()
ElseIf response = MsgBoxResult.No Then
e.Cancel = True
Me.WindowState = FormWindowState.Minimized
Me.Hide()
NotifyIcon1.Visible = True
End If
PS:我不是一個程序員,所以請不要在惡劣的跟我:)
感謝您的回答...我已經從Visual Studio Properties si中找到了設置,應該也可以使用此方法...不幸的是,我沒有管理爲什麼我的應用程序沒有關閉任務管理器後關閉......這就是爲什麼我找到了這個臨時解決方案....基本上應用程序是一個簡單的Windows窗體。 – Operagust 2012-03-27 14:05:51