C# 在模式对话框外捕捉鼠标单击

C# 在模式对话框外捕捉鼠标单击,c#,winforms,compact-framework,modal-dialog,C#,Winforms,Compact Framework,Modal Dialog,我有一个应用程序是用C#targeting.NET Compact Framework 3.5编写的,运行在Windows CE上。如果用户试图在不关闭对话框的情况下与其所有者窗口进行交互,我希望在模式对话框中提供自定义视觉提示 模态对话框是否可以接收鼠标单击其所有者窗口的通知?“所有者”窗口正在全屏运行,因此一般来说,在模态对话框外捕获单击就足够了。您可能会使用该属性。您可能会使用该属性。模态就是这样工作的。当对话框以模式显示(CE或桌面窗口)时,该窗口将获得自己的内部消息。这意味着当你在你的

我有一个应用程序是用C#targeting.NET Compact Framework 3.5编写的,运行在Windows CE上。如果用户试图在不关闭对话框的情况下与其所有者窗口进行交互,我希望在模式对话框中提供自定义视觉提示


模态对话框是否可以接收鼠标单击其所有者窗口的通知?“所有者”窗口正在全屏运行,因此一般来说,在模态对话框外捕获单击就足够了。

您可能会使用该属性。

您可能会使用该属性。

模态就是这样工作的。当对话框以模式显示(CE或桌面窗口)时,该窗口将获得自己的内部消息。这意味着当你在你的窗口外收到一条信息(就像鼠标落下)时,泵就会丢弃它。泵无法将该消息“向上”发送到另一个泵(如果你不亲自处理这两个泵,这是可能的,但复杂、复杂且根本不可扩展或维护)。

这就是模态的工作原理。当对话框以模式显示(CE或桌面窗口)时,该窗口将获得自己的内部消息。这意味着当你在你的窗口外收到一条信息(就像鼠标落下)时,泵就会丢弃它。泵无法将该消息“向上”发送到另一个泵(如果你不亲自处理两个泵,这是可能的,但很复杂,复杂,根本不可扩展或维护)。

我无法做到这一点。在调用ShowDialog方法之前,我将表单的Capture属性设置为true,但在对话框外部单击时,我没有收到任何单击事件。是否表单需要可见才能设置捕获?我已尝试在设置Capture属性之前确保表单可见,但仍然没有成功。可能是Windows的一个怪癖…我无法让它工作。在调用ShowDialog方法之前,我将表单的Capture属性设置为true,但在对话框外部单击时,我没有收到任何单击事件。是否表单需要可见才能设置捕获?我已尝试在设置Capture属性之前确保表单可见,但仍然没有成功。可能是Windows的一个怪癖…如图所示覆盖WndPrc方法如图所示覆盖WndPrc方法