表单构造函数与Form_Load

什么是表单构造函数和form_Load方法之间的区别?

什么是你把物品放在一个与另一个相比的过程?

无论您是否显示该表单,构造函数中的代码都会在您创建表单时立即运行。 在Form.Load事件中运行的代码是一个事件处理程序,因此您实际上可以在其他类(已订阅该表单)中运行代码。 同样,您可以(从表单)使用Form.OnLoad方法来运行代码。

表单的Load事件(和OnLoad overridable方法,通常是表单本身中更好的选择)在表单初始化后运行。 这通常具有优势,因为已经构建了所有表单的控件,更重要的是,已经发生了所有表单布局。

不要使用Load事件,重写OnLoad()方法。 这可确保从表单类派生时,所有内容都以可预测的顺序运行。 您只应将其用于表单初始化,这需要知道实际表单的大小。 由于缩放或用户偏好,它可能与设计大小不同,并且在创建本机窗口之前不知道实际大小。

可以在OnLoad方法中初始化控件,但它可能非常慢,特别是对于ListView和TreeView。 如果在构造函数中初始化它们,则可以在创建其本机Windows控件时对它们进行批量初始化。

一个特殊的例外:创建一个MDI子窗口应该始终在OnLoad()中完成,管道代码中的一个错误会在构造函数中创建子项时弄乱MDI栏。