首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winforms -加载和激活事件的顺序

Winforms -加载和激活事件的顺序
EN

Stack Overflow用户
提问于 2009-09-16 04:34:23
回答 3查看 15.3K关注 0票数 12

我们的一个用户已经为我们的.NET Winforms应用程序发送了一个日志,该日志指示Activated事件发生在 Load事件之前。我认为这是不可能的,并假设Load总是发生在Activated之前。

还有人观察到Activated发生在Load之前吗?

如果是这样的话,为什么和有没有办法确保它不会发生呢?

EN

回答 3

Stack Overflow用户

发布于 2009-09-16 04:48:05

来自MSDN的Windows窗体中事件的顺序

应用程序启动和关闭事件 窗体和控制类公开一组与应用程序启动和关闭相关的事件。当Windows窗体应用程序启动时,主窗体的启动事件按以下顺序引发: System.Windows.Forms.Control.HandleCreated System.Windows.Forms.Control.BindingContextChanged System.Windows.Forms.Form.Load System.Windows.Forms.Control.VisibleChanged System.Windows.Forms.Form.Activated System.Windows.Forms.Form.Shown 当应用程序关闭时,主窗体的关闭事件按以下顺序引发: System.Windows.Forms.Form.Closing System.Windows.Forms.Form.FormClosing System.Windows.Forms.Form.Closed System.Windows.Forms.Form.FormClosed System.Windows.Forms.Form.Deactivate

您是否在任何启动事件中使用MessageBox?由于windows窗体消息循环处理对话框窗口的方式,这可能会导致事件出现无序触发。

票数 21
EN

Stack Overflow用户

发布于 2009-09-16 04:43:42

启动是在装载之前。如果您想编写一些在加载后应该执行的代码,那么可以使用如图所示的方法。

请查找以下顺序:

  • 已激活
  • 加载
  • 示出

编辑:请查看这个非常有趣的回答,以便解释WinForms负载与显示的事件

编辑:我现在已经创建了一个默认的winform项目,只有一个Winform。现在它给了我顺序

  • 加载
  • 已激活
  • 示出

我现在很困惑。

票数 2
EN

Stack Overflow用户

发布于 2009-11-27 18:00:03

尽管这违背了Microsoft的文档,但有时当您从表单外部访问加载表单的公共变量或函数时,也会发生这种情况。如果有必要,您可以在显示的事件中设置一个标志,并使用它在表单加载之前退出激活的处理程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1430955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档