c# Public Form1() , Form1_load ,Form1_actived 执行顺序的问题?
单步调试运行发现,窗体程序开始运行,先是类字段的初始化,为变量分配内存空间(类似c++中的全局变量初始化),然后执行是窗体类的构造函数PublicForm1(),Init...
单步调试运行发现, 窗体程序开始运行, 先是 类字段的初始化,为变量分配内存空间 (类似c++中的全局变量初始化),
然后执行 是窗体类的构造函数 Public Form1(), InitializeComponent(); 然后Form1_Load事件,进入Form1_Load事件的{ ,此时窗体还没显示出来,当执行到方法的 } 方法执行结束后 窗体才显示出来,但窗体显示出来的是个空架子(一片空白)。 然后进入Form1_actived事件的方法中,当该事件方法执行完了,窗体才完整显示出来。
以上分析是否正确?? 展开
然后执行 是窗体类的构造函数 Public Form1(), InitializeComponent(); 然后Form1_Load事件,进入Form1_Load事件的{ ,此时窗体还没显示出来,当执行到方法的 } 方法执行结束后 窗体才显示出来,但窗体显示出来的是个空架子(一片空白)。 然后进入Form1_actived事件的方法中,当该事件方法执行完了,窗体才完整显示出来。
以上分析是否正确?? 展开
1个回答
展开全部
顺序正确,但结论不正确。
简单说下窗体事件的触发顺序:
1、System.Windows.Forms.Control.HandleCreated(句柄创建)
2、System.Windows.Forms.Control.BindingContextChanged
3、System.Windows.Forms.Form.Load(窗体加载)
4、System.Windows.Forms.Control.VisibleChanged(窗体显示开始)
5、System.Windows.Forms.Form.Activated(窗体激活)
6、System.Windows.Forms.Form.Shown(窗体显示完毕)
简单说下窗体事件的触发顺序:
1、System.Windows.Forms.Control.HandleCreated(句柄创建)
2、System.Windows.Forms.Control.BindingContextChanged
3、System.Windows.Forms.Form.Load(窗体加载)
4、System.Windows.Forms.Control.VisibleChanged(窗体显示开始)
5、System.Windows.Forms.Form.Activated(窗体激活)
6、System.Windows.Forms.Form.Shown(窗体显示完毕)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询