フォームの表示について

解決


みけ  2008-04-21 10:34:22  No: 139584  IP: 192.*.*.*

フォームAからフォームB、Cが同時に開くんですが
フォームBをモーダル、フォームCをモーダレスで表示
するという仕様です。
この時、フォームCをフォームAの前面に持ってきたい
のですが、それは可能ですか?

お願いします。

編集 削除
matsu  2008-04-21 11:27:14  No: 139585  IP: 192.*.*.*

>フォームAからフォームB、Cが同時に開くんですが
>フォームBをモーダル、フォームCをモーダレスで表示
>するという仕様です。
>この時、フォームCをフォームAの前面に持ってきたい
>のですが、それは可能ですか?

VB6の場合は、ownerformを指定すれば可能です。
Form2.Show vbModeless, Me

編集 削除
魔界の仮面弁士  2008-04-21 11:28:55  No: 139586  IP: 192.*.*.*

そもそも Modal とは、専用モード。「その画面のみが使用可能な状態」です。
Modeless とは、モード制限なし。「どの画面も自由に操作可能な状態」です。

『フォーム B のみが使用可能である状況』で、それよりも手前に、
『使用不可なフォーム C が表示されている状況』には、違和感を感じます。

モードレス側を「常に手前に表示」状態にしたり、あるいはアプリを分割するなど、
やり方によっては実装できなくも無いですが、操作性は悪化してしまうでしょう。

まずは、そもそも何故そのような表示が必要であるのか、その理由を説明していただけませんか?
それによって、何らかの解決策が提示できるかも(できないかも)知れません。

編集 削除
魔界の仮面弁士  2008-04-21 11:38:56  No: 139587  IP: 192.*.*.*

あぁ。A が最背面、C をモーダルで最前面にして、
B はモードレスでその中間に…という意味でしたか。

であれば、matsuさんの方法でいけますね。
(.NET なら、Show メソッドの第一引数にオーナフォームを指定できます)

# A の手前に C モーダルで表示し、その C と A の手前に
# B を表示したいという意味に受け取ってしまいました…。

編集 削除
みけ  2008-04-21 18:39:52  No: 139588  IP: 192.*.*.*

>matsuさん
>魔界の仮面弁士さん
なんとかなりそうです。
ありがとうございました><

編集 削除