私のプログラムにはイベントがありますonClosing
- それを隠すだけです。しかし、プログラムの終了も実装する必要があります-タスクバーの通知項目のコンテキストメニューを使用してみてください。
コード:
private void FormMainForm_FormClosing(object sender, FormClosingEventArgs e)
{
//canceling closing form
e.Cancel = true;
//hide form
this.WindowState = FormWindowState.Minimized;
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
//hide icon from tray
notifyIcon.Visible = false;
//get current process
Process proc = Process.GetCurrentProcess();
//kill it and close programm
proc.Kill();
}
しかし、少し読んで、kill()
すべての作業を終了し、プロセスを「強制終了」します。プログラムを閉じるのは通常の方法ではないと思います-一部のデータは破壊されたり、保存されなかったりする可能性があります
proc.closeMainWindow();
andも使用しようとしましproc.Close()
たが、プログラムには影響しません。すべてのウィンドウが閉じられましたが、プロセスはまだ実行されています。
質問:.kill()
プログラムを閉じるのは正しい方法ですか、それとも別の方法がありますか?