-PR-
解決済み

【C#】Form1からForm2を表示したとき、Form2がForm1

  • 困ってます
  • 質問No.6294921
  • 閲覧数890
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 79% (31/39)

【C#】Form1からForm2を表示したとき、Form2がForm1を所有する

検索しても見つからなかったので質問させていただきます。

Form1からForm2を表示(Form2.Instance.Show();)したとき、
Form2がForm1の上にこないように、また、Form2は必ずForm1のすぐ後ろであるようにして欲しいんです。

たとえば、
IEで検索ウィンドウを開いたときに、検索ウィンドウを表示していてもIEは操作できるけど(モードレス)、IEの後ろに検索ウィンドウが行くことはありません。
これはForm2.Instance.Show(this);とすればいいだけですが、
自分がやりたいのはその逆です。
検索ウィンドウの後ろにIEが行くことがないようにしたいんです。

Form1.Activateなどを使って無理やりさせようとしましたが、
無理だったので質問しました。

わかる方は教えていただけると嬉しいです。
お願いします。

(ちなみにVisualStudio2010、.NET Framework3.5です。)
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル14

ベストアンサー率 71% (1325/1856)

すみません C#でしたね ^^

Form1側に Form2型の変数を用意します

Form2 objForm2;

表示する際に
if ( objForm2 == null || objForm2.IsDisposed )
  objForm2 = new Form2();
this.Owner = objForm2;
objForm2.Show();


Form2側のFormClosingイベントで
if ( this.OwnedForms.Length != null ) {
  this.OwnedForms[0].Owner = null;
}
といった具合になるかと ・・・
お礼コメント
wararyo

お礼率 79% (31/39)

思い通りにできました。ありがとうございました。
こんな簡単にできるとは…。
投稿日時 - 2010-11-05 22:58:10

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 71% (1325/1856)

Form2の表示前に me.Owner = From2.Instance を実行すればご希望の動作になりそうです

Form2側の FormClosingイベントで
if Form1.Owner IsNot Nothing then
  Form1.Owner = nothing
End if
を実行しないと Form2を閉じると Form1まで閉じてしまうと思います


Form1からForm2を開く際には Locationを適切に設定しないとForm1の影に隠れてしまうと思います


このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ