//添加窗口关闭事件委托

在窗口关闭事件中处理

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);
}

c# winform 应用程序根据条件阻止窗口关闭的更多相关文章

  1. Winform应用程序实现通用消息窗口

    记得我之前发表过一篇文章<Winform应用程序实现通用遮罩层>,是实现了透明遮罩的消息窗口,功能侧重点在动图显示+消息提醒,效果看上去比较的炫,而本篇我又来重新设计通用消息窗口,功能重点 ...

  2. Winform应用程序实现通用遮罩层二

    之前先后发表过:<Winform应用程序实现通用遮罩层>.<Winform应用程序实现通用消息窗口>,这两款遮罩层其实都是基于弹出窗口的,今天为大家分享一个比较简单但界面相对友 ...

  3. C# WinForm 应用程序 开启Console窗口

    /********************************************************************************* * C# WinForm 应用程序 ...

  4. winform/wpf 程序部署

    (1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋 ...

  5. 解决Winform应用程序中窗体背景闪烁的问题

    本文转载:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码. 这几天遇到一个问 ...

  6. Winform应用程序实现通用遮罩层

    在WEB上,我们在需要进行大数据或复杂逻辑处理时,由于耗时较长,一般我们会在处理过程中的页面上显示一个半透明的遮罩层,上面放个图标或提示:正在处理中...等字样,这样用户体验就比较好了,然而如果在Wi ...

  7. Delphi中如何控制其他程序窗体上的窗口控件

    回调函数一般是按照调用者的要求定义好参数和返回值的类型,你向调用者提供你的回调函数的入口地址,然后调用者有什么事件发生的时候就可以随时按照你提供的地址调用这个函数通知你,并按照预先规定好的形式传递参数 ...

  8. WinForm应用程序之注册模块的设计与实现

    Posted on 2012-11-13 10:21 星星之火116 阅读(3260) 评论(4) 编辑 收藏 我们在安装一些桌面应用程序的时候,往往在会有提示当前用户使用的是试用版,要进行注册.刚好 ...

  9. 开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面

    NanUI是什么 NanUI基于ChromiumFX项目进行开发,它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面(类似Electron). ...

随机推荐

  1. Tomcat 文件夹结构

    文件夹                                                          描写叙述 /bin                               ...

  2. 线程相关函数(7)-sem_post(), sem_wait() 信号量

    sem_tsem_initsem_waitsem_trywaitsem_timedwaitsem_postsem_destroy 生产者消费者实例: #include <stdlib.h> ...

  3. mysql 循环insert

    亲测成功!可用,复制即可 DELIMITER ;; CREATE PROCEDURE test_insert() BEGIN DECLARE y TINYINT DEFAULT 1;WHILE y&l ...

  4. /usr/bin/ld: cannot find -lc错误原因及解决方法

    问题解决 我在执行如下命令的时候,出现了错误. gcc -o main main.c -static -L. –lmylib Linux环境下gcc静态编译/usr/bin/ld: cannot fi ...

  5. 16V554 的测试代码

    //------------------------------------------------------------------------ #include   "AT16C554 ...

  6. Genymotion常见问题整合与解决方案(转)

    常见问题1:Genymotion在开启模拟器时卡在了starting virtual device(注意只有tarting virtual device窗口,没有模拟器的黑屏窗口)    原因:Vir ...

  7. etl工具,kettle实现循环

    Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. 业务模型: 在关系型数据库中有张很大的数据存储表,被设计成奇偶 ...

  8. jquery -- body div 和 body>div 的区别

    body  div表示body下的所有div标签都应用样式,不管是body的儿子还是孙子或更孙子 body >div表示只有body的儿子div才应用样式,孙子以后都不应用

  9. 【BZOJ】1670: [Usaco2006 Oct]Building the Moat护城河的挖掘(凸包)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1670 裸打了凸包.. #include <cstdio> #include <cs ...

  10. 小结:bfs

    概要: 我们在初始状态要到达终止状态可以沿着同深度的向下搜索,这样范围覆盖更广,在解的深度较小的时候十分适用. 技巧及注意: 所有状态在转移后如果要打标记一定要在进队列前打!不要在出队列才打!否则就是 ...