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 のコード (1 つのコマンド ボタンを使用):
Private Sub Command1_Click()
Form2.Display
End Sub
Form2 のコード (1 つのコマンド ボタンを使用)::
Public Sub Display()
Command1.Caption = "Close Me"
Me.Show vbModal
End Sub
Private Sub Command1_Click()
Unload Me
End Sub