表单构造函数和form_Load方法之间的区别是什么?
您将物品放在一个与另一个之间的过程是什么?
答案 0 :(得分:27)
不要使用Load事件,重写OnLoad()方法。这可确保从表单类派生时,所有内容都以可预测的顺序运行。您只应将其用于表单初始化,这需要知道实际表单的大小。由于缩放或用户首选项,它可能与设计大小不同,并且在创建本机窗口之前不知道实际大小。
可以在OnLoad方法中初始化控件,但它可能非常慢,特别是对于ListView和TreeView。如果在构造函数中初始化它们,则可以在创建其本机Windows控件时对它们进行批量初始化。
一个特殊的例外:创建一个MDI子窗口应该始终在OnLoad()中完成,管道代码中的一个错误会在构造函数中创建子项时弄乱MDI栏。
答案 1 :(得分:19)
构造函数中的代码在您创建表单时立即运行,无论您是否显示它。在Form.Load
事件中运行的代码是一个事件处理程序,因此您实际上可以在其他类(已订阅该表单)中运行代码。同样,您可以(从表单中)使用Form.OnLoad method来运行代码。
表单的Load事件(和OnLoad overridable方法,通常是表单本身中更好的选择)在表单初始化后运行。这通常具有优势,因为所有表单的控件都已构建,更重要的是,所有表单布局都已发生。