winform窗体的加载顺序

必须记录一下,写winform窗体的时候多复制了一行代码,错把InitializeComponent()写在窗体的加载事件,然后几乎所有的事件都出不了效果了!!!检查的时候觉得
InitializeComponent()的Initial和窗体加载好像是一样的,应该没有错误就没有注意。但实际,窗体的加载时间和窗体的构造方法是不一样的!

构造函数:将构造一个对象,但这个对象不会显示到界面上来。
load():使用load前提是这个对象已经存在,load只是把这个对象要显示到显示的信息显示出来。

窗体启动时触发的事件和顺序

对于一个窗体程序,第一步,执行From构造函数,初始化窗体、控件等。待窗体初始化完成后,将窗体Show()出来。show窗体有Show()和ShowDialog(),后一个展示的窗体是独占的,如果打开了对应的窗体,不将其关掉,它便会独占主线程,使得不能在对系统的其他功能做操作,而前一个便不会有这样的影响。

show方法执行之后,主线程继续执行==Load()==窗体加载事件,通常对窗体的赋值,都是写在Load()里面。

Load()方法结束后,执行Shown方法。
Shown:只有在首次显示窗体时才会引发 Shown 事件;随后执行的最小化、最大化、还原、隐藏、显示或无效化和重新绘制操作都不会引发该事件。但是再new一个会触发!

而在窗体加载至完成,还有一个非常重要的一个事件,Activated()事件
它是在窗体激活时或产生操作(包括鼠标点击)时发生。在窗体主线程执行完成会触发此事件,所以,在这里面的操作,是不会对窗体的加载造成影响的,所以加快窗体的加载速度,可以在这个事件上面动文章。不过如果想不到这个的事件,想要不影响窗体加载,提高窗体加载速度,可以利用线程等来实现。其原理都是让主线程快速执行完成,这样窗体就不会停留在假死的状态。

窗体启动时触发的事件和顺序

当应用程序关闭时,会以下列顺序引发主要表单的关闭事件:
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

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值