一、以下是网络上可搜索到的次序
当 Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件:
System.Windows.Forms.Control.HandleCreated
System.Windows.Forms.Control.BindingContextChanged
System.Windows.Forms.Form.Load
System.Windows.Forms.Control.VisibleChanged
System.Windows.Forms.Form.Activated
System.Windows.Forms.Form.Shown
当应用程序关闭时,会以下列顺序引发主要表单的关闭事件:
System.Windows.Forms.Form.Closing
System.Windows.Forms.Form.FormClosing
System.Windows.Forms.Form.Closed
System.Windows.Forms.Form.FormClosed
System.Windows.Forms.Form.Deactivate
二、以下是我测试的次序,全部protected override 这些事件,并且在其base.的前后分别处理一次,如下
- protectedoverridevoidOnLoad(EventArgse)
- {
-
textBox1.Text+="OnLoad1"+"/r/n";
-
base.OnLoad(e);
-
textBox1.Text+="OnLoad2"+"/r/n";
- }
OnClientSizeChanged1
OnClientSizeChanged2
OnClientSizeChanged1
OnClientSizeChanged2
// Loyout要多次执行
OnLayout1
OnLayout2
OnHanleCreated1
OnHanleCreated2
OnInvalidated1
OnInvalidated2
// 注意这里的一点点变化
OnCreateControl1
OnLoad1
OnLoad2
OnCreateControl2
//
OnLayout1
OnLayout2
OnActivated1
OnActivated2
OnShown1
OnShown2
OnPain1
OnPain2
希望这个次序能给大家带来用处。。可以在不同事件中去处理所需要的代码
三、以下是代码源。C# 2008 Express
- usingSystem;
-
usingSystem.Collections.Generic;
-
usingSystem.ComponentModel;
-
usingSystem.Data;
-
usingSystem.Drawing;
-
-
usingSystem.Text;
-
usingSystem.Windows.Forms;
-
namespaceWindowsFormsApplication1
- {
-
publicpartialclassForm1:Form
- {
-
publicForm1()
- {
- InitializeComponent();
- }
-
-
protectedoverridevoidOnActivated(EventArgse)
- {
-
textBox1.Text+="OnActivated1"+"/r/n";
-
base.OnActivated(e);
-
textBox1.Text+="OnActivated2"+"/r/n";
- }
-
protectedoverridevoidOnClientSizeChanged(EventArgse)
- {
-
textBox1.Text+="OnClientSizeChanged1"+"/r/n";
-
base.OnClientSizeChanged(e);
-
textBox1.Text+="OnClientSizeChanged2"+"/r/n";
- }
-
protectedoverridevoidOnCreateControl()
- {
-
textBox1.Text+="OnCreateControl1"+"/r/n";
-
base.OnCreateControl();
-
textBox1.Text+="OnCreateControl2"+"/r/n";
- }
-
protectedoverridevoidOnDeactivate(EventArgse)
- {
-
textBox1.Text+="OnDeactivate1"+"/r/n";
-
base.OnDeactivate(e);
-
textBox1.Text+="OnDeactivate2"+"/r/n";
- }
-
protectedoverridevoidOnHandleCreated(EventArgse)
- {
-
textBox1.Text+="OnHanleCreated1"+"/r/n";
-
base.OnHandleCreated(e);
-
textBox1.Text+="OnHanleCreated2"+"/r/n";
- }
-
protectedoverridevoidOnHandleDestroyed(EventArgse)
- {
-
textBox1.Text+="OnHanleDestoryed1"+"/r/n";
-
base.OnHandleDestroyed(e);
-
textBox1.Text+="OnHanleDestoryed2"+"/r/n";
- }
-
protectedoverridevoidOnInvalidated(InvalidateEventArgse)
- {
-
textBox1.Text+="OnInvalidated1"+"/r/n";
-
base.OnInvalidated(e);
-
textBox1.Text+="OnInvalidated2"+"/r/n";
- }
-
protectedoverridevoidOnLayout(LayoutEventArgslevent)
- {
-
textBox1.Text+="OnLayout1"+"/r/n";
-
base.OnLayout(levent);
-
textBox1.Text+="OnLayout2"+"/r/n";
- }
-
protectedoverridevoidOnLoad(EventArgse)
- {
-
textBox1.Text+="OnLoad1"+"/r/n";
-
base.OnLoad(e);
-
textBox1.Text+="OnLoad2"+"/r/n";
- }
-
protectedoverridevoidOnPaint(PaintEventArgse)
- {
-
textBox1.Text+="OnPain1"+"/r/n";
-
base.OnPaint(e);
-
textBox1.Text+="OnPain2"+"/r/n";
- }
-
protectedoverridevoidOnShown(EventArgse)
- {
-
textBox1.Text+="OnShown1"+"/r/n";
-
base.OnShown(e);
-
textBox1.Text+="OnShown2"+"/r/n";
- }
- }
- }
分享到:
相关推荐
C#编程 WinForm窗体开发 Selected(源码)C#编程 WinForm窗体开发 Selected(源码)C#编程 WinForm窗体开发 Selected(源码)C#编程 WinForm窗体开发 Selected(源码)C#编程 WinForm窗体开发 Selected(源码)C#编程 WinForm...
代码已封装,仅一个方法,调用即可使想要的窗体或者控件变得不在触发事件,直接穿透到电脑桌面。适用于做屏保或者截屏或者一些小工具程序。
在C# WinForm开发中,有时我们希望为窗体添加一些高级视觉效果,例如像现代操作系统中的窗口那样,带有四周的阴影。这个效果可以提升应用的用户体验,使其看起来更加专业和精致。本教程将详细讲解如何在WinForm取消...
在"C# WinForm窗体美化界面.rar"压缩包中,包含了一个名为"GDIPlusDemo"的示例项目,该项目展示了如何实现无边框窗体、窗体圆角以及自定义系统按钮控制器。 首先,让我们讨论如何创建一个无边框的WinForm窗体。在...
C#编程 WinForm窗体开发 DropDownList(源码)C#编程 WinForm窗体开发 DropDownList(源码)C#编程 WinForm窗体开发 DropDownList(源码)C#编程 WinForm窗体开发 DropDownList(源码)C#编程 WinForm窗体开发 DropDownList...
https://blog.csdn.net/qq_34280681/article/details/105428119
在C# Winform应用程序开发中,常常需要在不同的窗体之间传递数据,以便实现各功能模块之间的交互。这里我们将详细探讨两种主要的传值方法:通过构造函数传值和通过属性传值。 首先,我们来看**通过构造函数传值**的...
在C# WinForm应用开发中,...总之,C# WinForm窗体嵌入外部EXE程序涉及多方面的技术,包括进程管理、控件创建、消息传递和事件处理。通过这些技术,我们可以构建出功能丰富的桌面应用,为用户提供更加一体化的体验。
C#编程 WinForm窗体开发 DynamicTaskStock(源码)C#编程 WinForm窗体开发 DynamicTaskStock(源码)C#编程 WinForm窗体开发 DynamicTaskStock(源码)C#编程 WinForm窗体开发 DynamicTaskStock(源码)C#编程 WinForm窗体...
C#winform窗体间传值,三种方法示例,注释详细。使用方法:使用vs2013打开编译运行即可; 工程中总共介绍了三种方法: ###方法1:通过保存对象的引用调用其方法实现对子窗体的控制; ###方法2:通过委托,在子窗体...
c# WinForm 窗体之间传值的几种方式小结 在WinForm开发中,窗体之间传值是一种常见的需求。今天,我们将介绍WinForm 窗体之间传值的几种方式,帮助开发者更好地解决这个问题。 方式一:使用公共静态变量传值 在这...
本教程通过一系列实例,展示了如何利用C#的WinForm技术创建各种复杂而富有特色的窗体效果,包括QQ界面的模拟、漂浮窗体、无标题栏拖动窗体、闪烁窗体、全屏显示以及透明渐现效果等。 首先,"Ex08_25(拖放工作区拖动...
3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,首次记录窗体和其控件初始位置和大小,之后调用类的自适应方法,完成自适应。 4.Panel,DataGridView等控件同样适用。 应用代码如下: using System; ...
总的来说,“C# WinForm窗体转盘抽奖”项目涵盖了C#编程语言的基础知识,包括对象、事件处理、图形绘制、音频控制等多个方面。通过实践这个项目,开发者不仅可以掌握WinForm应用的开发流程,还能提升自己在编程、UI...
在C# WinForm开发中,窗体样式和风格的定制是提升用户界面(UI)美观性和用户体验的关键要素。本文将深入探讨如何实现多种漂亮、好看的样式风格,并关注下拉框选择这一常见控件的美化方法。 首先,让我们了解...
C#编程 WinForm窗体开发 ValidateDay(源码)C#编程 WinForm窗体开发 ValidateDay(源码)C#编程 WinForm窗体开发 ValidateDay(源码)C#编程 WinForm窗体开发 ValidateDay(源码)C#编程 WinForm窗体开发 ValidateDay(源码)...
C#编程 WinForm窗体开发 ChineseCode(源码)C#编程 WinForm窗体开发 ChineseCode(源码)C#编程 WinForm窗体开发 ChineseCode(源码)C#编程 WinForm窗体开发 ChineseCode(源码)C#编程 WinForm窗体开发 ChineseCode(源码)...
C#编程 WinForm窗体开发 ByteConversion(源码)C#编程 WinForm窗体开发 ByteConversion(源码)C#编程 WinForm窗体开发 ByteConversion(源码)C#编程 WinForm窗体开发 ByteConversion(源码)C#编程 WinForm窗体开发 ...