0

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
4

0 に答える 0