希望我只是遗漏了一些明显的东西,但我试图了解Windows窗体中 Load和Shown事件之间的差异.
传统上,我只使用Load(或实际上是OnLoad,因为我认为覆盖一个方法比依靠设计者自己连接一个事件更干净),因为在所有版本的.NET中都可以使用它.使用.NET 2.0,引入了Shown事件.
现在,如果你在MSDN文档中查看这些描述("加载:第一次显示表单之前发生.","显示:每当表单首次显示时发生.")听起来像Load事件应该发生,然后表格应该可见,然后应该发生显示事件; 两者的结合使您可以在表格可见之前和之后执行某些任务.有道理,对吗?
但是,实验表明Shown事件总是发生在 Load事件之前,每当我尝试它时(两者都发生在表单变得可见之前).然而,当我发现一个关于这些事件被触发的命令的页面时,我在谷歌周围时,他们总是列出首先被触发的Load事件.
我只是疯了,还是我错过了什么?(如果它们确实在大约同一时间发生,那么为什么首先添加了已显示的事件?)
(我目前在显示表单之前和之后做某事的解决方案是使用OnLoad进行"显示之前"的操作并为"显示后"的东西启动一个短时间的一次性计时器.哪个工作正常且可靠,但是它有点难看,我希望有一个更清洁的解决方案.但看起来显示的事件不是它.)