在Onload方法中调用base.Onload(e)时调用OnLoad

时间:2010-05-24 17:18:00

标签: winforms onload

我有一个视图(userControl),我正在覆盖它的OnLoad和OnLayout方法。关闭视图时,将执行OnLayout方法,并且对base.OnLayout(e)的调用将触发OnLoad方法。

导致OnLoad被调用的原因是什么?我该如何避免这种行为? 问候。

2 个答案:

答案 0 :(得分:2)

再次调用OnLoad,因为base.OnLayout()使用将重新创建窗口的属性。那不好,你肯定需要解决这个问题。您需要找出在处理控件时调用OnLayout的原因。在OnLayout覆盖上设置断点并检出调用堆栈。如果您无法理解,请将其发布在您的问题中。

答案 1 :(得分:0)

Thanx Hans回复,

由于调用dispose,似乎Windows窗体布局在控件上调用布局。无论如何,作为一个解决方法我周围的呼叫base.OnLayout()与SuspendLayout()和ResumeLayout。

问候。