【问题标题】:Which windows message triggers a form's load event?哪个 Windows 消息触发了表单的加载事件?
【发布时间】:2009-02-13 17:34:39
【问题描述】:

我发布了这个answer(更多的是一个想法),但无法确定是哪条消息触发了 WinForms Form.Load 事件。根据 Spy++ 和一些阅读,我建议它可能是 WM_SHOWWINDOW,但我想确定一下。

此外,除了 Spy++ 之外,还有更好的方法来准确查看哪个 Windows 消息触发了 .Net 事件?即使在 Spy++ 中关闭某些事件类型后,日志窗口也会很快填满。

谢谢。

【问题讨论】:

    标签: c# .net winforms winapi


    【解决方案1】:

    没有与 Form 类上的 Load 事件相对应的特定 Windows 消息。该事件只是在创建窗体的窗口句柄后第一次使窗口可见之前触发。

    用于初始化,需要在Form第一次显示之前创建Form的窗口句柄。

    【讨论】:

    • 那么它是 WM_SHOWWINDOW 但只是第一次为特定表单处理该消息吗?
    • @ng5000:我不会这么说的。文档表明它是在第一次触发表单之前触发的。在触发它之前发生的任何事情,因此它也可能是创建窗口的消息。没有办法确定,因为这是一个实现细节
    【解决方案2】:

    我在这里猜测,但配置您的开发环境以使用 Microsoft 的源服务器,然后查看 System.Windows.Forms 代码可能会有所帮助。请参阅 Shawn Burke 的博客条目Configuring Visual Studio to Debug .NET Framework Source Code

    【讨论】:

      猜你喜欢
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多