c# 代码写public Form1()里面和写Form1_Load里面有什么区别?

我知道前者是窗体设计代码,后者是窗体启动代码,但是我总觉得写这两里面好像都一样?

可能实现的效果是一样的,但是他们两个有本质的区别。
public Form1() 这个是窗体的构造函数
Form1_Load 是窗体加载时触发的事件

比如你想在窗体打开后就向数据中获取一些信息然后填充到窗体中。
如果写在public Form1()中的init...方法的前面,这时,窗体中什么控件都没有,会报错的。
但是写到form_load中就没问题,因为窗体(所有的类)肯定都是先构造,然后执行某个事件(或方法)的。
窗体也是一个类,public Form1() 就是 当你写一条语句 Form1 f1=new Form1();时,new Form1()执行的语句。
再具体的还需要你自己去理解
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-06
其实你的理解是错误的。form1其实是一个类的构造函数。该类因为是form开发,所以继承自windows.form类,而form1_load只是这个类的一个事件而已。两者出现在不同的生命周期,一般情况下根据代码的情况写到不同的地方。也就是说前者只是类的构造函数,一般将子控件写到其中,然后在init中进行初始化。而load事件在窗体加载时会自动触发,一般可以写一些初始化装态等。

虽说不局限在你写到具体的位置,但一般情况下子控件要写到构造中或者写到init事件中,而load事件就是处理加载完成后一些事件。如果异步加载子控件等等内容。来自:求助得到的回答
第1个回答  2012-12-06
前者里面的代码只是相当于容器,执行的条件可以多样,比如可以用按钮触发,也可以判断输入值等等,甚至可以把函数名写在后面里面执行。
后面里面的代码是在打开这个窗口的时候就执行的,比如一些默认设置的信息就要放在这儿。
第2个回答  2012-12-06
好问题。。
public Form1():是类的声明
Form1_Load:是窗体的一个Load事件
我的理解是执行时间不同,Form1()先执行。而且写的东西也不同
第3个回答  2012-12-06
public Form1():是类的构造函数,用来传递参数
Form1_Load(0:是窗体的加载事件,用来加载数据
相似回答