0

私のプログラムにはイベントがあります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()プログラムを閉じるのは正しい方法ですか、それとも別の方法がありますか?

4

1 に答える 1