DOBON.NET DOBON.NETプログラミング掲示板過去ログ

2つのフォームのZオーダーだけ固定したい

環境/言語:[2000sp4 VB.net]
分類:[.NET]

フォーム1がメインフォームで、このフォームは通常のZオーダーだとして、
ここから表示するフォーム2が常にフォーム1より後ろにいさせたいのです
つまりフォーム2が最背面の時は当然ですが、通常Zオーダーでフォーカスが
当たった時もフォーム1にはかぶらないようにしたいのです
(最前面の時はフォーム1も最前面にするとして)
フォーム2をオーナーにしてみましたが、それだとフォーム2が最背面の時に
フォーム1も最背面になってしまうのと、フォーム1から開くフォーム3のボタンが
押せなくなったりします
Form1のTopMostプロパティをTrueにするとか駄目ですか?
■No13129に返信(Eightさんの記事)
> Form1のTopMostプロパティをTrueにするとか駄目ですか?
うーん…
form1は通常(form2がtopmostの時だけtopmost)にしたいんですよね
(但しform2が最背面になってもform1はならない)
で、そのあくまで通常Zオーダーの中でのform1とform2の関係なんです
つまり
他アプリ>form1>form2
form1>form2>他アプリ
としたいわけです
現在form2のactivatedでform1をactivateしてるんですが
form2をクリックした場合は上の様になりますが、form1をクリックすると
form1>他アプリ>form2
になるんです
> form1>他アプリ>form2
となってはいけないというのは何故なのでしょうか? 2つのフォームの位置関係が重要なのであれば、問題とするようなものではないように感じました。

 『フォーム2を常に最背面表示にする』とか『フォーム2を常にフォーム1より背面に表示する』というのは可能ですけれど、仰るような状態にしないというのはできないような気がします。
#見た目と操作感を損なうような強引なやり方なら思い付きますけど。
#対象フォームをアクティブにせずにZオーダーを変更する方法があれば……。<探してみたものの見つけられませんでした。



(余談)
> フォーム2をオーナーに

 これはフォーム1のオーナーをフォーム2にした、ということでしょうか。その場合、フォーム2を閉じたときに、フォーム1も閉じられたような……?


> form2のactivatedでform1をactivate

 フォーム2が操作できなくなるのは問題にならないのでしょうか?
■No13136に返信(深山 さんの記事)
>>form1>他アプリ>form2
> となってはいけないというのは何故なのでしょうか? 2つのフォームの位置関係が重要なのであれば、問題とするようなものではないように感じました。

確かに気分的な問題なのですが

>>フォーム2をオーナーに
> >  これはフォーム1のオーナーをフォーム2にした、ということでしょうか。その場合、フォーム2を閉じたときに、フォーム1も閉じられたような……?
> > >>form2のactivatedでform1をactivate
> >  フォーム2が操作できなくなるのは問題にならないのでしょうか?

フォーム2は画像を表示するだけの、一切操作しない、閉じることさえ無い
フォームなのです(タイトルバーもボーダーも無いw)
ただし、画面一杯に広がるためZオーダーの関係で他アプリにかぶさると
鬱陶しいと…
まあ無理そうなので現状で良しとします
(フォーム2をオーナーにするのは止めましたが)
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板