本文系转载学习。

对于关注对 Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。当某种情况需要小心处理事件时(如重绘窗体的某些部分时),必须知道事件在运行时的确切引发顺序。本文提供了一些有关在应用程序和控件的生命周期中的几个重要阶段中的事件顺序的详细信息。

对于验证这些事件的激发顺序有一个很简单的方法,就是创建这些事件的处理函数,即使什么事情都不做。然后在每个函数的入口处设置断点,对程序进行调试运行,看到达断点顺序就可以了。

当 Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发

1、System.Windows.Forms.Control.HandleCreated
  在为控件创建句柄时发生

2、System.Windows.Forms.Control.BindingContextChanged 
  当 BindingContext 属性的值更改时发生
  注:每个 Windows 窗体至少有一个 BindingContext 对象,详见MSDN

3、System.Windows.Forms.Form.Load 
  在第一次显示窗体前发生

4、System.Windows.Forms.Control.VisibleChanged 
  在 Visible 属性值更改时发生
  注:如果通过编程修改或用户交互更改 Visible 属性,则将引发此事件

5、System.Windows.Forms.Form.Activated 
  当使用代码激活或用户激活窗体时发生

6、System.Windows.Forms.Form.Shown 
  只有在首次显示窗体时才会引发 Shown 事件;随后执行的最小化、最大化、还原、隐藏、显示或无效化和重新绘制操作都不会引发该事件。

当应用程序关闭时,主窗体的关闭事件按以下顺序引发:

1、System.Windows.Forms.Form.Closing 
  在关闭窗体时发生
  注意:在 .NET Framework 版本 2.0 中,Closing 事件已过时,应改用 FormClosing 事件。

2、System.Windows.Forms.Form.FormClosing 
  在关闭窗体前发生,此时可以取消窗体的关闭。

3、System.Windows.Forms.Form.Closed 
  关闭窗体后发生
  注意:在 .NET Framework 版本 2.0 中,Closed 事件已过时,应改用 FormClosed 事件。

4、System.Windows.Forms.Form.FormClosed 
  关闭窗体后发生

5、System.Windows.Forms.Form.Deactivate 
  当窗体失去焦点并不再是活动窗体时发生

注意:当调用 Application.Exit 方法以退出应用程序时,不引发 Form.Closed 和 Form.Closing 事件,但是会激发 Form.FormClosed 和 Form.FormClosing 事件。

最新文章

  1. 我的angularjs源码学习之旅1——初识angularjs
  2. Java基础知识梳理《一》
  3. Java面向对象之多态
  4. http协议(二)请求和响应报文的构成
  5. 【Spark】---- Spark 硬件配置
  6. 所有Mac用户都需要知道的9个实用终端命令行
  7. 怎样用好ZBrush中的PaintStop插件
  8. 学习JAVA 安装
  9. php 计算两个日期之间的差,得出:年月日时分秒
  10. 将你的代码上传 Bintray 仓库
  11. PHP备份数据库的原理和方法 57
  12. 轻量级别的Cache和反向代理软件---Varnish
  13. linux系统裁剪
  14. MT2017笔试题
  15. Redis(二)--Jedis使用
  16. ajax请求数据时什么时候用GET,什么时候用POST
  17. selenium之安装和登陆操作举例
  18. LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)
  19. Java并发容器和框架
  20. Java-JUC(一):volatile引入

热门文章

  1. 安装tomcat出现failed to install tomcat8 service错误及解决方法
  2. Python生成器与yield
  3. 《RabbitMQ in action》
  4. 从今天起,正式步入cnblogs,向曾经的脚印说声对不起!
  5. How to download a website for offline usage
  6. java项目
  7. oracle 根据汉字返回拼音函数
  8. Fody
  9. 软件测试Web数据分析工具HttpWatch安装
  10. SQL RIGHT JOIN 关键字