在退出程序时进行操作该怎么做?

yqdeng 2002-09-26 02:00:42
比如说是通过点击右上角的“X”,从任务管理器“结束任务”,或直接关机的情况下要对程序进行某些操作,该怎么做?
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nerk 2002-09-26
  • 打赏
  • 举报
回复
这个问题我刚研究过。

点击x和系统重起在c#里没有适当的事件可以区别,如果仅仅是想在程序退出时做些事,可以handle closing或closed事件。

如果要实现一些高级的功能,可能要费点事了,
比如点x时不关闭程序,但是系统重启时关闭程序。

实现上述功能需要重载Form.WndProc窗口处理函数,然后在WndProc里截取所有发给窗口的消息,如果是0x0010(WM_CLOSE),就return;否则,调用基类的窗口处理函数。

yarshray 2002-09-26
  • 打赏
  • 举报
回复
this.close();
bigrongshu 2002-09-26
  • 打赏
  • 举报
回复
点击右上角的“X”,可以写Form_Closing()

从任务管理器“结束任务”,或直接关机的情况下没法控制吧
sdsxc 2002-09-26
  • 打赏
  • 举报
回复
使用Form_Closing()事件。以下是一个程序的片断
private void FrmEdit_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if(bChange==false)
{
int retal=0;
retal=MessageBox (0,"文件还没有保存,是否保存?","记事本",3);
switch(retal)
{
case 6:
e.Cancel = true; //是否退出的标志,TURE 表示不退出。
if(sFileName!="")
{
Save();
this.Close();
}
else
{
if(DlgSaveFile.ShowDialog()==DialogResult.OK)
{
sFileName=DlgSaveFile.FileName;
Save();
this.Close();
}
}
break;
case 7:
e.Cancel = false;
break;
case 2:
e.Cancel=true;
break;
}
}
else
{
e.Cancel = false;
}
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧