Winforms Form Constructor vs Load事件

时间:2008-11-05 05:25:05

标签: .net winforms constructor initialization onload-event

当表单加载时,代码需要执行诸如setup datagrids,comboboxes,set title等操作。我倾向于总是使用load事件而不是new(构造函数)。是否有哪些指南最适合哪些活动?

3 个答案:

答案 0 :(得分:2)

对InitializeComponent的调用会自动插入到表单/页面的构造函数中。 InitializeComponent是自动生成的方法

  • 在winform / XAML页面上创建各种UI元素
  • 使用存储在资源文件中的值初始化其属性

所以与UI排列/修改相关的任何内容都应该在之后进行此调用。当您在Form.OnLoad的覆盖中执行此操作时,您可以确保UI已准备就绪(已调用InitializeComponent)...因此我投票支持使用OnLoad for UI。
创建非UI成员,构造函数将是我第一次看到的地方。

答案 1 :(得分:1)

请记住,表单的构造函数中的任何内容都将在创建表单时创建/执行。即在:

Form frm = new Form();

只有当表单显示时才会出现Load事件中的任何内容,即 frm.Show();

答案 2 :(得分:0)

基本上,您希望构造函数尽可能轻量级。我尝试将大部分内容放在Load事件处理程序中,因为UI元素已经创建并且此时可用。但是,我通常在构造函数中实例化类对象等,因为它实际上是构造对象的一部分。有时你不能把东西放在一个地方或另一个地方,但是在你可以的时候,你应该把它们放在最合适的地方。