与构造函数方法相比,应该如何使用Form.Load事件?

Eri*_*tas 8 .net c# winforms

初始化控件的属性或与表单I相关的其他值时,在初始化Form的构造函数中的值之间来回切换,然后在引发Form.Load事件时.

Forms构造函数与它的Form.Load事件的普遍接受使用是什么?对于其他类,我会在构造函数中进行所有初始化.然而,在VS中双击一个Form时,它会跳转到Form.Load事件的事件处理程序而不是构造函数.这让我相信在Load事件而不是构造函数之后进行所有初始化是更可取的.

Han*_*ant 8

是的,它有点令人伤心,它的工作方式.它在当时很有意义,现在已经10年了.Windows Forms的目标是取代当时占主导地位的点击式UI设计器VB6.Form_Load 在VB6中很重要,这是您自定义表单视图的地方.

从一开始就不太合适,Form类有一个真正的构造函数.并且您可以在创建实际本机Window控件之前在构造函数中设置控件属性.WF中有大量代码可以完成这项工作.设计人员依赖的代码,它在Load事件触发之前设置这些属性.这是非常有效的做到这一点,许多控件得到了很多的慢时,他们需要创建自己的窗口后进行更新.像ListView和TreeView一样.

没有像设计师那样自己使用构造函数的原因很少,特别是因为C#IDE不会试图隐藏构造函数.除了一个:当您编写需要了解实际表单大小的代码时,您需要 Load事件.在实际创建窗口之前,该大小是未知的,Load事件是最早的.这应该是罕见的.

当然,如果您确实想使用Load,则覆盖OnLoad而不是使用Load事件.那将是另一个.