zoukankan      html  css  js  c++  java
  • Windows 窗体启动和关闭的事件顺序

    本文系转载学习。

    对于关注对 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 事件。

  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/joy99/p/5148830.html
Copyright © 2011-2022 走看看