c# 代码写public Form1()里面和写Form1Load里面有什么区别?一般程序的一些初始化条件放哪更好
Form1()执行的时候,界面控件未必加载好。
比如说你写
Form1()
{
textBox1.Text = "123";
InitializeComponent();
}
会报错。
这种操作界面的代码,应该写在 Form_Load里面。
相反,Form_Load的代码在Show/ShowDialog调用的时候才被执行。
如果你写
Form1 f = new Form1(); //构造函数先执行
f.xxx = xxx 在这里设置变量
f.Show(); //FormLoad在这里执行
你可以加一个断点,调试试试看。如果只是普通的处理,也是可以理解成效果一样。但是需要注意一下几点:
1.他们的执行顺序不一样,先执行构造方法,在执行Load方法,然后再执行Shown方法
2.如果代码是对窗体或控件设置样式的话,那么卸载实例化方法中,可能在打开窗体编辑器预览的时候就会生效了。但是如果卸载Load方法中只有在运行的时候才会看出代码执行后的效果。
另外,补充一下,如果代码相对复杂,性能较低的情况下,我建议放在Shown方法中处理。因为这样是先看到窗体已经显示然后在执行处理,否则我们看到窗体全部处理完才显示,这丫样如果时间较长的话,用户体验不太好。
加载时间不一样,一个是构造函数的时候处理,另一个是页面加载完后处理;
一般来说,放的位置分两种情况:
1. 一些基础变量,可以放到构造函数;
2. 一些比较废时间的操作,不要放到构造函数而放到Form1_Load,否则页面会很卡。