窗口显示在应用程序/ VB6之上

时间:2013-06-18 14:44:06

标签: windows-7 vb6 modal-dialog windows-server-2008-r2 z-order

我有一个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

0 个答案:

没有答案