1

在我必须修复的大型旧应用程序中,我有两种形式,如图所示(这是一个记事本示例)

在此处输入图像描述

当我离开(用鼠标光标)我的小(Y)表单区域时,该表单将“消失”,就像我点击大表单并激活它一样。

但我没有点击 X,X 标题也没有激活,但是小 Y 形式向后退,不再可见。

如何跟踪问题?

当我离开该区域时,不会在两种形式中的任何一种上跟踪, Resize, Activated, Deactivate, LostFocus,GotFocus中的任何一个...GiveFeedbackMdiChildActivateY

4

4 回答 4

1

尝试覆盖表单 Y 的OnVisibleChanged并在此设置断点。在调试期间重现情况并检查属性 Form.Visible 是否为 false 并检查调用堆栈。

于 2012-05-24T14:11:34.033 回答
1

进行多次测试我发现了问题:Y表单是Deactivate由 d 的X,因为在MouseMove事件上X产生了一个 Focus() 在 (X) 表单内的特定控件上......

感谢大家的帮助!

(PS。所以,我在最初关于停用事件的帖子中错了)

于 2012-05-24T15:12:21.753 回答
1

据我所知,这是一个系统范围的事情。我认为它被称为活动窗口跟踪

可能想尝试禁用它。

于 2012-05-24T14:46:48.690 回答
0

您可以将表单 'Y' TopMost 属性设置为 'True' 这样它就永远不会消失在 'X' 后面。(假设 'X' 的 'Topmost' 属性不正确。

于 2012-05-24T14:25:39.887 回答