【发布时间】:2011-03-05 10:50:39
【问题描述】:
Form.Load、Form.Shown 和Form.Activated 事件形式的区别是什么?他们被解雇的顺序是什么?
【问题讨论】:
-
永远、永远、永远不要计算 WINFORMS 中的事件顺序!事实上,尽可能少地使用事件,如果/当你使用很多时,它们应该只调用一些完成大部分工作的常用子程序。诚然,事件的顺序不会改变,但这种编程风格是在寻找错误(根据我自己的经验,不幸的是大多数是其他人的经验)。也不要在 StackOverflow 评论中大喊大叫!
-
@Anthony:MessageBox 是一种很棒的 方式来搞乱事件顺序。它将使 Shown 事件在 Load 事件结束之前运行。永远不要使用 MessageBox 调试 UI 事件,最好使用 Debug.WriteLine()。
-
我在加载、显示和激活事件中使用了 Debug.WriteLine - 感谢 Hans :)。输出窗口将事件顺序显示为加载、激活和最终显示。