12

OnLoad方法和Load事件有什么区别?我正在开发 WinForm 控件。我应该注册Load事件还是重写OnLoad方法?各有什么优缺点?

4

3 回答 3

13

我会选择覆盖OnLoad,因此您可以节省 CPU 周期来调用事件处理程序。

如果从控件继承,一般模式是覆盖方法;否则,订阅该事件。

但请记住调用基类的OnLoad方法,因为那是Load调用事件的地方。

于 2009-07-08T07:24:57.320 回答
5

OnLoad 方法是引发 Load 事件的方法。这是框架类中的一种标准模式,也是一种普遍推荐的模式——对于任何事件Foo,您都有一个虚拟保护方法OnFoo来引发该事件;并且该类没有其他方法直接引发事件,但始终调用OnFoo.

如果您需要处理 on 上的事件this,通常更容易和更快地覆盖OnFoo.

于 2009-07-08T07:25:11.750 回答
0

OnLoad 是 VB.NET 中用于处理 Load 事件的默认事件处理程序。当我需要将代码附加到加载事件时,我通常会覆盖此方法。其他页面生命周期事件也有默认函数:OnPreRender、OnInit 等。

于 2009-07-08T07:21:48.870 回答