我有一个VB6应用程序,包含MDI表单,MDI子表单和标准表单。在Windows 7 / Windows 2008 Server R2之前,此应用程序在操作系统上运行良好。在Windows 7 / Windows 2008 Server R2上,显示模式窗体时出现问题。模态形式有时不会停留在前景,后面的形式会出现在前面,即使它是另一个应用程序。
例如,我打开Microsoft Word。然后我打开我的应用程序(带有MDI子项的MDI表单),它位于屏幕上的Word之上。我单击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