我很好奇这种技术在MDI应用程序中的各种条件下会如何运作。事实证明,这并不适用于所有情况。如果您的应用程序是MDI应用程序,则当应用程序本身失去/重新获得焦点时,如果MDI窗体内的非模态窗体具有焦点,主MDI窗体将失去/获得焦点(如其他答案中所述)。然而,如果打开了模态对话框(对应用程序本身而言是模态的),则主MDI窗体不会失去/获得焦点(至少激活/停用事件似乎不会触发)。换句话说,如果您只处理MDI窗体的激活/停用事件,则可能会错过应用程序失去/获得焦点的情况,如果一个模态窗体具有焦点。因此,似乎为了使其正常工作,您需要处理MDI窗体的激活/停用事件以及任何通过ShowDialog模式打开的窗体上的这些事件。