WinForm、WPF、ASP.NET窗口生命周期
来源:互联网 发布:淘宝白底图片制作 编辑:程序博客网 时间:2024/06/05 07:36
做了这么久桌面应用程序开发,对窗口的生命周期还没有一个清晰的了解。那我们就对*WinForm、WPF和ASP.NET*应用程序中窗口的生命周期做一个测试,看一下在窗口的创建和消亡的过程中,各个事件的执行顺序。
WinForm
首先,我们来看一下WinForm窗口。在窗口的构造函数中注册一下各个事件。
this.HandleCreated += Form1_HandleCreated;this.BindingContextChanged +=Form1_BindingContextChanged;this.Load += Form1_Load;this.VisibleChanged += Form1_VisibleChanged;this.Activated += Form1_Activated;this.Deactivate += Form1_Deactivate;this.Shown += Form1_Shown;this.FormClosing += Form1_FormClosing; this.FormClosed += Form1_FormClosed; this.Deactivate += Form1_Deactivate;
在事件中执行函数,将事件名称和执行顺序输出。private void Output(string func){ System.Diagnostics.Debug.WriteLine($"{func}: {i++}");}
我们可以看到,输出结果是:> HandleCreated: 1BindingContextChanged: 2Load: 3VisibleChanged: 4Activated: 5Shown: 6Deactivate: 7Activated: 8Deactivate: 9Activated: 10FormClosing: 11FormClosed: 12Deactivate: 13当窗口失去焦点时,Deactivate事件被调用;获得焦点时,Activated事件被调用。———-WPF
接下来,看一下WPF窗口。同样,我们注册一下各个事件。this.Initialized += MainWindow_Initialized;this.Activated += MainWindow_Activated;this.Loaded += MainWindow_Loaded;this.ContentRendered += MainWindow_ContentRendered;this.Closing += MainWindow_Closing;this.Unloaded += MainWindow_Unloaded;this.Closed += MainWindow_Closed;
在各个事件中执行函数,输出事件名称和执行顺序。
输出结果如下:
Initialized: 1
Activated: 2
Loaded: 3
ContentRendered: 4
Activated: 5
Closing: 6
Closed: 7
值得注意的是:Initialized事件必须在构造函数执行InitializeComponent();之前注册,否则不会执行。
ASP.NET
最后是ASP.NET窗口。
PreInit==>Init==>InitComplete==>PreLoad==>Load==>Validation==>LoadComplete==>PreRender==>SaveStateComplete==>Rendering==>UnLoad
阅读全文
0 0
- WinForm、WPF、ASP.NET窗口生命周期
- DevExpress视频教程,winform+asp.net+wpf等等
- WPF中的窗口的生命周期
- WPF中的窗口的生命周期
- WPF/Silverlight中的MVVM模式能否在WinForm/ASP.NET上运用?
- WPF/Silverlight中的MVVM模式能否在WinForm/ASP.NET上运用?
- WPF中的窗口的生命周期[window]
- .NET固定WinForm窗口大小
- ASP.Net页面生命周期
- asp.net 生命周期
- ASP.NET的生命周期
- asp.net控件生命周期
- asp.net控件生命周期
- ASP.NET 页生命周期
- asp.net 应用程序生命周期
- ASP.Net页面生命周期
- asp.net生命周期
- ASP.NET生命周期
- Python开发资源速查表
- Python
- DataBase基础知识
- 2017年Android百大第三方框架排行榜
- 【计网】网络层详解(上)
- WinForm、WPF、ASP.NET窗口生命周期
- 编写mysleep
- CRF命名实体识别的一些tips
- jmeter个人学习之路--元件的作用域与执行顺序
- [LeetCode]561.Array Partition I
- SSM 项目搭建 (IDEA)
- 神经网络入门之隐藏层设计
- 萌新PHP开发之旅(适合学艺术的前端开发观看,基础一定是负数才行)
- CSS笔记:浅谈position属性