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:是窗体的加载事件,用来加载数据

c# 代码写public Form1()里面和写Form1_Load里面有什么区别?
可能实现的效果是一样的,但是他们两个有本质的区别。public Form1() 这个是窗体的构造函数 Form1_Load 是窗体加载时触发的事件 比如你想在窗体打开后就向数据中获取一些信息然后填充到窗体中。如果写在public Form1()中的init...方法的前面,这时,窗体中什么控件都没有,会报错的。但是写到form_lo...

c# form_load 和 Form1 两个方法都是在启动的时候执行, 这两个方法...
二者不是同时启动的Form1 先启动的 这个是加载你界面上所有控件等等的东西

c# MainWindow() 与MainWindow_Loaded()区别
(1): public Form():程序入口,它的InitializeComponent()做了许多初始化的工作,所以Load才能成为一个事件,InitializeComponent为你的程序作了必要的初始化工作 (2) Form_Load:装载窗口事件, 是窗体启动时触发的事件 总的来讲:程序先执行InitializeComponent(); 后执行Form1_Load,InitializeComponent是进行...

C#中,Form1的加载函数Form1_load()问题
看图,如果你选的是Form1_load,那么就是加载Form1_load()函数,如果你选的是Form1_load_1,那么就是加载Form1_load()_1函数,选别的也行.

c# Public Form1() , Form1_load ,Form1_actived 执行顺序的问题?
顺序正确,但结论不正确。简单说下窗体事件的触发顺序: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....

VS2005的C#的一个问题,定义全局的静态变量
你要定义全局静态变量的话,在public Form1()前面定义public static int b; 。你要是在非静态函数(没有用static修饰的函数),比如Form1_Load()函数里面用的话,必须使用非静态变量,即在public Form1()前面定义public int b; ,然后在Form1_Load()函数里面使用 希望对你有用 ...

C#中Form1_Load是自己直接写代码添加还是像Click事件那样属于消息事件...
form1_load窗体显示前发生的,没有什么必要.也没什么后果.但是可以使用此事件执行一些任务,如分配窗体使用的资源,添加新的事件等。在提供自己的 Load 实现时,请务必调用基窗体的 Load 事件处理程序的基方法实现。如果未能做到这一点,可能导致窗体的某些功能(如自动缩放)无法正常工作。建议多看看MSDN...

谁可以给我个页面间传值的例子 C#的 谢谢!
窗体间同步传值的实现,就是实时更新两个窗体间的信息,有心的朋友可能发现,既然能在目标窗体中,找到源窗体,那么我们还可以通过源窗体来控制目标窗体,从这里面突破,就能达到此效果了。代码如下还是依照4例:在Form1中:程序代码:public partial class Form1 :Form { public Form1(){ InitializeCom...

C#为啥我用这段代码用了和没用的效果一样?
public Form1() { InitializeComponent(); this.Load += Form1_Load;\/\/加这句 }

C# 先显示窗体,后运行form_load程序
1:处理Shown事件,把代码放这里。这个事件执行的时候窗口已显示出来。2:先直接new一个窗口实例,调用Show方法,然后再调用一个初始化的方法,这个方法应该公有的,比如public的方法,在这个方法里写代码处理逻辑。

相似回答