3

アプリケーションを直接閉じるか、タスク バーまたはタスク マネージャーから閉じるかに関係なく、同じ方法でアプリケーションを閉じる必要があります。アプリケーションを閉じる前に、いくつかの事前設定を行い、毎回ログファイルを自動的に生成する必要があります...

たとえば、アプリケーション フォームを終了するたびに次の効果を与えますが、タスク バーまたはタスク マネージャーからアプリケーションを閉じると、この効果は表示されません...

    System.Windows.Forms.Timer closeTimer = new System.Windows.Forms.Timer();

    void lblClose_Click(object sender, System.EventArgs e)
    {
        closeTimer.Tick += new EventHandler(closeTimer_Tick);
        closeTimer.Interval = 10;
        closeTimer.Start();            
    }

    void closeTimer_Tick(object sender, EventArgs e)
    {
        int a = (int)(this.Opacity * 100);
        a--;
        this.Opacity = ((double)a / 100);
        if ((this.Opacity*100) == 0)
            this.Close();
    }
4

3 に答える 3

5

この質問から:

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
    AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
    Application.Run(new MainForm());
}

これはFormClosed、フォームが閉じているからといって、必ずしもアプリケーションが閉じていることを意味するわけではないため、使用することをお勧めします (もちろん、コードに固有です)。

于 2012-11-13T13:29:48.677 に答える
4

あなたのアプリは System.Windows.Forms.Application だと思います。その場合は、ApplicationExit イベントをリッスンできます。

したがって、メインで次のようにします。

Application.ApplicationExit += (s,e) =>
{
   // Your exit code.
};

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.applicationexit.aspxを参照してください。

于 2012-11-13T13:26:36.520 に答える
0

FormClosingイベントを処理する必要があります。詳細はこちら: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx

于 2012-11-13T13:28:01.100 に答える