我有一个由 MDI 表单、MDI 子表单和标准表单组成的 VB6 应用程序。此应用程序在 Windows 7 / Windows 2008 Server R2 之前的操作系统上运行良好。在 Windows 7 / Windows 2008 Server R2 上,我在显示模式表单时遇到问题。模态表单有时不会停留在前台,而在它后面的表单会出现在前台,即使它是另一个应用程序也是如此。
例如,我打开 Microsoft Word。然后我打开屏幕上 Word 顶部的应用程序(带有 MDI 子项的 MDI 表单)。我单击 MDI 子窗体上调用模式弹出窗体的按钮。Word 出现在屏幕上,现在是最顶层的表单,但没有焦点,也不响应任何按键事件。模态弹出窗口虽然在 Word 后面,但正在响应按键。
这不会每次都发生,但是如果我单击 MDI 子项上的按钮并一遍又一遍地关闭模式表单,我可能会在某个时候导致它发生。我的用户经常看到它,因为他们整天都在屏幕上进进出出。
知道是什么原因造成的吗?在 Windows XP 上很好。
MDIForm1 的代码:
Private Sub MDIForm_Load()
Form1.Show
End Sub
Form1 的代码(带有单个命令按钮):
Private Sub Command1_Click()
Form2.Display
End Sub
Form2 的代码(带有单个命令按钮)::
Public Sub Display()
Command1.Caption = "Close Me"
Me.Show vbModal
End Sub
Private Sub Command1_Click()
Unload Me
End Sub