zoukankan      html  css  js  c++  java
  • C# Windows Forms 事件处理顺序

    事件引发的顺序对某些Windows 窗体应用来说十分重要。当某些事件需要特别处理时(如重绘窗体的某些部分),必须知道事件在运行时的确切引发顺序。下面就应用程序和控件的生命周期中的几个重要阶段的事件顺序进行详细讨论。

    应用程序的启动和关闭

    Form和Control类有一组和程序启动和关闭先关的事件。当Windows Forms程序启动时,主窗体的启动事件按以下顺序引发:

    • Control.HandleCreated
      为控件创建句柄时发生,在首次显示Control时会创建句柄。例如,如果创建的Control但其Visible属性设置为false,则HandleCreated不会引发,直到Visiable 设置为true才引发。
    • Control.BindingContextChanged
      BindingContext属性值改变时引发.
    • Form.Load
      Form首次显示时引发,可以通过该事件分配窗体使用的资源等任务。
    • Control.VisibleChanged
      Visible属性改变时引发。
    • Form.Activated
      当窗体激活时引发,当应用程序处于活动状态并且有多个Form,则活动的窗体时具有输入焦点的窗体。不可见的窗体不能成为活动窗体。激活form最简单的方法时单击它。
      在运行时激活Form,使用Activate方法。可以使用此事件处理一些任务,如根据form在未激活时对窗体数据所做的更改来更新窗体内容。
    • Form.Shown
      form首次显示时引发,而在随后的最小化、最大化、还原、隐藏或无效化和重新绘制都不会引发该事件

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

    • Form.Closing
    • Form.FormClosing
    • Form.Cloed
    • Form.FormClosed
    • Form.Deactivate

    Application类的ApplicationExit事件在主窗体关闭事件之后引发。

    聚焦和验证事件

    当通过使用键盘(TAB,Shift+Tab等)、调用Select或SelectNextControl方法、或将ActiveControl属性设置为当前窗体等方法更改焦点时,Control类的聚焦事件按以下顺序发生:

    • Enter
    • GotFocus
    • Leave
    • Validating
    • Validated
    • LostFocus

    当使用鼠标或通过调用Focus方法更改焦点时,Control类的聚焦事件发生顺序为:

    • Enter
    • GotFocus
    • Leave
    • Validting
    • Validated
  • 相关阅读:
    下载PDF格式的Html
    EnumHelper.cs
    FtpHelper.cs
    Windows下用cmd命令安装及卸载服务
    c# list排序
    用NOPI将图片二进制流导出到Excel
    jquery的clone方法 于textarea和select的bug修复
    时间戳格式化函数
    快速激活Navicat Premium 12
    防止应用程序重复打开
  • 原文地址:https://www.cnblogs.com/jiawei-whu/p/4334598.html
Copyright © 2011-2022 走看看