2016-06-17 7 views
0

システムトレイにアイコンを隠して表示するようにアプリケーションをコーディングしました。アイコンをクリックして終了すると、私のアプリケーションは消えますが、アプリケーションはまだタスクマネージャで動作しているように見えます。ここに私のクロージングです:あなたが正しくあなたのフォームがクローズさせることができますようにアプリケーションが終了しない

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    NotifyIcon1.ContextMenuStrip = ContextMenuStrip1 
End sub 

Private Sub OpenWorkSheet_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
    e.Cancel = True 
    Me.Visible = False 
    Me.NotifyIcon1.Visible = True 
End Sub 

Private Sub OpenToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem1.Click 
    Try 
     NotifyIcon1.ContextMenuStrip = ContextMenuStrip1 
     Me.Visible = True 
     Me.WindowState = FormWindowState.Normal 
     NotifyIcon1.Visible = False 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click 
    Me.Visible = True 
    Me.WindowState = FormWindowState.Normal 
    NotifyIcon1.Visible = False 
    Me.Close() 
    Application.Exit() 
    Me.Dispose() 
End Sub 

Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick 
    Try 
     NotifyIcon1.ContextMenuStrip = ContextMenuStrip1 
     Me.Visible = True 
     Me.WindowState = FormWindowState.Normal 
     NotifyIcon1.Visible = False 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 

End Sub 

答えて

0

は、あなたが全体のアプリケーションを閉じているかどうかを示すboolean変数を宣言します。

これは、アプリケーション全体を閉じることを選択していない場合にのみ、e.CancelをTrueに設定します。

Dim ClosingApp As Boolean = False 

Private Sub OpenWorkSheet_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
    If ClosingApp = False Then 
     e.Cancel = True 
     Me.Visible = False 
     Me.NotifyIcon1.Visible = True 
    End If 
End Sub 

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click 
    ClosingApp = True 
    NotifyIcon1.Visible = False 
    Me.Close() 
    Application.Exit() 
End Sub 

は、私はまた、いくつかの余分な行を削除し、インスタンスのフォームを配置することAとして必要ありません)あなたはすでに、すべての使用メモリが解放され、アプリケーションを終了しています。 B)フォームを閉じると、自動的にフォームが閉じられます。

関連する問題