我需要以相同的方式关闭我的应用程序,无论是直接关闭还是从任务栏或任务管理器关闭。我需要进行一些预设置,并在每次关闭应用程序之前自动生成日志文件...
例如,我每次退出时都会对我的申请表格给出以下效果,但是当我从任务栏或任务管理器关闭我的应用程序时,不会显示此效果......
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();
}
答案 0 :(得分: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
更可取,因为表单正在关闭并不一定意味着应用程序是(特定于您的代码)。
答案 1 :(得分:4)
我假设您的应用是System.Windows.Forms.Application。如果是这样,您可以收听ApplicationExit事件。
所以在Main中,做一些像:
Application.ApplicationExit += (s,e) =>
{
// Your exit code.
};
请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.application.applicationexit.aspx
答案 2 :(得分:0)
您需要处理FormClosing
事件。
更多信息:
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx