weixin_44138934
wxy新人小白
采纳率72%
2019-08-01 09:59 阅读 933

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

c# 代码写public Form1()里面和写Form1Load里面有什么区别?一般程序的一些初始化条件放哪更好

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2019-08-26 18:44

    Form1()执行的时候,界面控件未必加载好。

    比如说你写
    Form1()
    {
    textBox1.Text = "123";
    InitializeComponent();
    }
    会报错。

    这种操作界面的代码,应该写在 Form_Load里面。

    相反,Form_Load的代码在Show/ShowDialog调用的时候才被执行。

    如果你写
    Form1 f = new Form1(); //构造函数先执行
    f.xxx = xxx 在这里设置变量
    f.Show(); //FormLoad在这里执行

    点赞 1 评论 复制链接分享
  • mirage1982 mirage1982 2019-08-01 10:26

    你可以加一个断点,调试试试看。如果只是普通的处理,也是可以理解成效果一样。但是需要注意一下几点:
    1.他们的执行顺序不一样,先执行构造方法,在执行Load方法,然后再执行Shown方法
    2.如果代码是对窗体或控件设置样式的话,那么卸载实例化方法中,可能在打开窗体编辑器预览的时候就会生效了。但是如果卸载Load方法中只有在运行的时候才会看出代码执行后的效果。
    另外,补充一下,如果代码相对复杂,性能较低的情况下,我建议放在Shown方法中处理。因为这样是先看到窗体已经显示然后在执行处理,否则我们看到窗体全部处理完才显示,这丫样如果时间较长的话,用户体验不太好。

    点赞 1 评论 复制链接分享
  • iFrameCooperation 皮皮熊_1989 2019-08-26 18:03

    加载时间不一样,一个是构造函数的时候处理,另一个是页面加载完后处理;
    一般来说,放的位置分两种情况:
    1. 一些基础变量,可以放到构造函数;
    2. 一些比较废时间的操作,不要放到构造函数而放到Form1_Load,否则页面会很卡。

    点赞 评论 复制链接分享

相关推荐