お世話になります。
早速ですが、仕様説明させていただきます。
メインフォームから、A〜Cのフォームを開く際の設定で。
親フォーム 子フォーム 孫フォーム
メインフォーム--フォームA-フォームZ
|--フォームY
|--フォームB--フォームZ
|--フォームY
|--フォームC--フォームZ
|--フォームY
1.メインフォームの境界線スタイル:ダイアログ
その他のフォームの境界線スタイル:サイズ変更可(アンカー設定あり)
2.メインフォームから子、孫まで開く可能性があり、開いたフォームを前面に表示したい
常に最善面表示にしたい訳ではない
3.親から子、孫フォームを開く際は、下記コマンドで実行
Docmd.OpenForm acForm "フォームA"
開くフォーム上でアンカー設定をしているので、acDialogオプションが使えない
開いたフォームから次のフォームを開く可能性があるので、APIのSetForegroundWindowも使い難い?
以上、アドバイスいただけますでしょうか。
子フォーム、孫フォームの「ポップアップ」プロパティを「はい」に設定するのではだめですか。
ありがとうございます。
子、孫ファームのポップアッププロパティは、「はい」にしております。
そうしていても、メインフォームの裏にかくれてしまいます。
メインフォームの「ボップアップ」は「いいえ」になってますか。
メインフォームの「ボップアップ」を「はい」にしたまま、
子フォームがメインフォームの裏に隠れないようにするには、子フォームの「作業ウィンドウ固定」を「はい」にしてください。
訂正します。
稀に隠れてしまう場合がありますので、
明示的に前面表示にするコーディングをしたいと思ってきます。
メインフォームのポップアッププロパティも「はい」です。
「作業ウィンドウ固定」を「はい」ですか。ありがとうございます。
別案として、acDialog でダイアログモードで開いたときに、APIで無理やりサイズ変更可能にする方法もあります。
下記でその方法を使ってますのでご参考に。
纏めると、方法としては、
メインフォーム「ポップアップ」「いいえ」
子フォーム、孫フォーム「ポップアップ」「はい」
メインフォーム「ポップアップ」「はい」
子フォーム、孫フォーム「ポップアップ」「はい」、「作業ウィンドウ固定」「はい」
メインフォーム「ポップアップ」「はい」
子フォーム、孫フォーム ダイアログモード(acDialog)で開く、APIでサイズ変更可能にする
のいずれかになると思います。
それぞれ、動作が異なりますので、動作を確認して、最適な方法を選択してください。
貴重な情報ありがとうございます。
参考にさせていただきます。