VisualStudio2005 のVBでWindowsアプリケーションを作成しています。
ロードに時間がかかるプログラムがあり、スプラッシュスクリーンを表示しています。
やり方としては、プロジェクトのプロパティウィンドウで
既存フォームをスプラッシュスクリーンとして指定する方法です。
スプラッシュスクリーンはロードの開始から終了まで表示されますが
ロードの処理の間に、ダイアログ画面をいくつか出さなければなりません。
(ユーザにインタラクティブな操作を要求します)
ダイアログはformを継承したごく基本的なものですが、
(コントロールはラベルとボタンのみ)
表示の際、スプラッシュスクリーンの背面に表示されるものと
前面に表示されるものがあり、その違いが分からず困っています。
いろいろと試した結果、次の事がわかりました。
前面に出る画面をA、背面に出る画面をBとすると、
・Aは必ず前面、Bも必ず背面に出る(再現性が100%)
・AとBではプロパティ、及び、呼出し方法に違いがない。
※呼出しメソッドはform.showDialog(me)としています。
・AとBの呼出し箇所を試しに逆にしてもAは前面、Bは背面に出る。(前後の処理に無関係)
AとBのZオーダは、それぞれの個体に依存しているように見えます。
ただし、作成したアプリをXPとVistaで動かすと、XPでは前面、Vistaでは背面に出る
といったダイアログもありました。
TopMostプロパティやFocusメソッドを使用してみましたが変わりません。
どのダイアログもスプラッシュスクリーンより前に表示したいのですが
前面と背面に出るフォームの条件に違いはなんなのでしょうか。
ご存じの方がいらっしゃればご教示ください。
よろしくお願いします。