我有一个视图(userControl),并且我覆盖了它的OnLoad和OnLayout方法。当视图关闭时,将执行OnLayout方法,并且对base.OnLayout(e)的调用将触发OnLoad方法。
是什么原因导致OnLoad被调用,我如何避免这种行为?致以问候。
发布于 2010-05-25 02:13:50
再次调用OnLoad是因为base.OnLayout()使用将重新创建窗口的属性。这不太好,你肯定需要解决这个问题。您需要找出在释放控件时调用OnLayout的原因。在OnLayout覆盖上设置断点并检查调用堆栈。如果你不能理解它,就把它放在你的问题里。
发布于 2010-05-25 23:37:58
感谢Hans的回复,
由于调用了dispose,Windows窗体布局似乎正在调用控件上的布局。无论如何,作为一种变通方法,我使用SuspendLayout()和ResumeLayout来围绕base.OnLayout()调用。
致以问候。
https://stackoverflow.com/questions/2898834
复制相似问题