0

私はこのイベントを新しい形式で持っています:

private void CrawlLocaly_FormClosed(object sender, FormClosedEventArgs e)
        {

        }

ClosedとClosingのどちらを使用するかわかりません。その理由は、たとえばタスクバーからアプリケーションを閉じるだけで、ユーザーがプログラムをシャットダウンしたかどうかを確認したいからです。

彼がタスクバーのマウスからそれを閉じた場合は、右クリックして閉じてから、このフォームだけでなく、すべてのプログラムを閉じてください。

どうすればいいですか?

4

3 に答える 3

3
    Application.Exit();

アプリケーションをシャットダウンします。彼が右マウスメニューを介してそれを閉じたかどうかを検出できるかどうかは本当にわかりません。私の知る限り、FormClosedEventArgsで提供されている理由しか見ることができません。FormClosingは同じ理由を提供します。

于 2013-02-19T13:34:47.583 に答える
0

このイベントを使用します:

private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
    if(e.CloseReason == CloseReason.UserClosing)
    {
         //close forms
         Application.Exit();
    }
}

ユーザーが「X」をクリックしてフォームを閉じたかどうかを確認する方法はありませんTaskBar。結果CloseReasonは常に次のようになります。CloseReason.UserClosing

于 2013-02-19T13:39:39.560 に答える
0

さて私もそのような問題にこだわる。私のアプリには2つのフォームがあります。#1メイン、#2-設定用です。ユーザーが閉じた場合、設定を保存するかどうかを知りたいです。また、設定がnullの場合-フォームだけでなくアプリを閉じる、ユーザーがボタンを保存をクリックした場合-#2フォームを閉じる(非表示にする)必要があります。だから私の解決策はどこにありますか?ボタンを保存をクリックするとタグ値を1に設定するので、「誰が」フォームを閉じようとしているのかがわかります:事前定義:

btnSave.Tag = 0;

保存ボタンクリックイベント時:

btnSave.Tag = 1;
this.Hide();

oncloseイベントをトリガーします。

private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (btnSave.Tag.ToString() == "0")
        {
            DialogResult dlg = MessageBox.Show("Do you want to exit without finished setup connection?", "Form", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (dlg == DialogResult.No)
            {
                e.Cancel = true;
            }
            else
            {
                e.Cancel = false;
                this.Dispose();
                Application.Exit();
            }
        }
        else 
        {
            this.Hide();
        }
    }
于 2014-02-14T11:51:08.123 に答える