vbModelessでShowしたフォームを常に手前にしたい

解決


ペコポン  2006-02-12 05:30:44  No: 130177

こんにちわ。
VB6、XPで開発しています。

FormAと、FormBがあって、
FormAのコマンドボタンを押されると、処理が実行されて、
その処理が実行中は、FormBがFormAの手前に表示されて、
進捗状況を表示するプログラムを作っています。
進捗状況を表示するFormBが表示されている場合は、
FormAをアクティブにはしたくありません。
でも、FormAをHideにはしたくないです。

FormAからFormBを起動する場合は、vbModelessでshowしています。

この場合、デスクトップ表示などを行って、このプログラムに戻ってくると、
FormBがアクティブになっていてほしいのですが、FormAがアクティブに
なってしまうことがあります。

なので、現状は、以下の方法で、対応しています。

'----------
' FormA
'----------
Private Sub Form_Paint()

    On Error Resume Next  'FormBがLoadされていないとエラーになる対策
    FormB.SetFocus
    Exit Sub

end sub

この方法が正解なのでしょうか?
みなさんならば、どうやって実現しますか?
ご意見を聞かせてもらえるとうれしいです。

よろしくお願いします。


abu  2006-02-12 08:22:52  No: 130178

FormB.Show vbModeless,FormA
とか


abu  2006-02-12 08:26:15  No: 130179

FormBがでてる間FormAをアクティブにしたくないなら
FormB.Show vbModeless,FormA
の後に
FormA.Enabled=False
として
FormBのUnlaodイベントで
FormA.Enabled=True
とか


ペコポン  2006-02-12 19:57:47  No: 130180

abu さん。回答ありがとうございます。
その方法で、対処することにします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加