- PR -

フォームの表示順とフォーカスについて教えてください

投稿者投稿内容
MrKong
常連さん
会議室デビュー日: 2004/01/24
投稿数: 22
投稿日時: 2006-10-24 10:49
タイトルにした問題に便乗させていただき、
もう1つ識者のみなさまにお聞きしたいことがございます。
これまた、フォームの表示される順序(タイミング)についてなのですが、
以下のような処理をしたと仮定します。

(AP1を実行)
・Sub Mainの最初でForm1を表示する → Form1.Show()
・Sub Mainの途中でForm1を非表示にする → Form1.Hide()
・Form1を非表示にした後、AP2を起動する → Proccess.Start()

・AP2側のForm2のLoadイベント内に、
 最前面表示の命令を記述 → Me.TopMost=True
・直後に最前面表示を解除 → Me.TopMost=False
(AP2はメニュー画面のため、常にTopMostにしてしまうとメニューから呼ばれたAPが
 メニュー画面の後ろになってしまうために最前面表示を解除している)

 ※AP1はAP2が終了するまで待ち続ける。

・AP2終了後、Form1を閉じる → Form1.Close()


望む動きはHideしているところから察しはつくと思いますが、
Form1→Form2→Form1という順に画面が遷移していくことです。
しかしながら、これまたごくごくマレではありますが、
AP2が起動されたときに、HideしたはずのForm1がずっと残ったままになり、
Form1の後ろにForm2が表示されていることがあります。
(キーボードのAlt+TabでForm2の存在を確認)

この現象もまた、どこかに不定な動きをする要素が潜んでいるのでしょうか?
重ねての質問ですが、どうぞよろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)