我从TextBox继承并覆盖OnInit。
Protected Overrides Sub OnInit(e As EventArgs)
MyBase.OnInit(e)
' I'm adding a dynamic control to go along with my textbox here...
Controls.Add(Something)
End Sub
在上面的示例中,我有MyBase.OnInit(e),但是我一直在使用我的控件一段时间了,因为我忘了把它放在那里。这是我通常出于习惯而做的事情,因此我从未考虑过它的目的:
有点尴尬的是,这对我来说尚不明确,但我的控制效果很好,所以我只是希望有人能举例说明可能导致问题的原因。
最佳答案
查看reference source code的TextBox
,如果您继承Control
的继承,您会看到这是 OnInit
的基本代码:
protected internal virtual void OnInit(EventArgs e) {
if(HasEvents()) {
EventHandler handler = _events[EventInit] as EventHandler;
if(handler != null) {
handler(this, e);
}
}
}
因此,如果您不致电
base.OnInit
,这将是您所错过的。关于c# - 在派生类中重写MyBase.OnInit(e)有什么影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36683600/