1

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

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

4

2 回答 2

2

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

于 2010-05-24T18:13:50.267 回答
0

感谢汉斯的回复,

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

问候。

于 2010-05-25T15:37:57.703 回答