c#窗体winform程序根据条件阻止或禁用窗口关闭
大家在C#开发过程中,可能有的项目程序不允许关闭,需要长期保持打开状态,来监控其他程序。以下方法可以实现,相当于禁用窗体关闭按钮。//首先添加窗口关闭事件委托
在窗口关闭事件中处理
private void TestForm_FormClosing(object sender, FormClosingEventArgs e)
{
switch (e.CloseReason)
{
//应用程序要求关闭窗口
case CloseReason.ApplicationExitCall:
e.Cancel = false; //不拦截,响应操作
break;
//自身窗口上的关闭按钮
case CloseReason.FormOwnerClosing:
e.Cancel = true;//拦截,不响应操作
break;
//MDI窗体关闭事件
case CloseReason.MdiFormClosing:
e.Cancel = true;//拦截,不响应操作
break;
//不明原因的关闭
case CloseReason.None:
break;
//任务管理器关闭进程
case CloseReason.TaskManagerClosing:
e.Cancel = false;//不拦截,响应操作
break;
//用户通过UI关闭窗口或者通过Alt+F4关闭窗口
case CloseReason.UserClosing:
e.Cancel = true;//拦截,不响应操作
break;
//操作系统准备关机
case CloseReason.WindowsShutDown:
e.Cancel = false;//不拦截,响应操作
break;
default:
break;
}
//if(e.Cancel == false)
// base.OnFormClosing(e);
}
//然后满足条件后,提示选择后关闭:
if (GModel.PJR!=null && !GModel.PJR.IsSaved&&e.CloseReason == CloseReason.MdiFormClosing)
{
DialogResult Dt = MessageBox.Show("当前项目没有保存操作,确实不保存吗?", "系统提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (Dt == DialogResult.OK)
{
//new DALMainInfos().DeleteAll();///清空数据
//Application.Exit();
e.Cancel = false;
}
else
{
e.Cancel=true;
}
}
页:
[1]