C#フォームを特定のフォームより手前に表示する

スポンサーリンク

あるフォームより手前に表示するには ShowDialog メソッドでモーダル表示するという方法があります。ただし、これではモーダル表示されていないフォームに制御を移すことができません。かといって、モードレス表示すると、他のフォームがアクティブになった際にフォームが隠れてしまいます。

これらは、オーナーとなるフォームを指定することで解決します。オーナーとなるフォームから AddOwnedForm メソッドで所有される側のフォームを加えるか、または所有される側のフォームの Owner プロパティからオーナーとなるフォームを設定します。

サンプルコード

以下にサンプルコードを示します。

C# 全般
    // Form1 の新しいインスタンスを生成する
    Form1 cForm1 = new Form1();

    // cForm1 を所有する
    this.AddOwnedForm(cForm1);

    // 所有される側からオーナーを指定することも可能
    //cForm1.Owner = this;

    // cForm1 を表示する
    cForm1.Show();

オーナーによる所有を解除する場合は、RemoveOwnedForm メソッドを使用して、解除したいフォームを指定するか、解除したいフォーム側の Owner プロパティを null (VB は Nothing) を設定します。

C# 全般
    // cForm1 を所有を解除する
    this.RemoveOwnedForm(cForm1);

    // 所有される側からオーナーに null を指定しても解除される
    //cForm1.Owner = null;

関連するリファレンス

準備中です。

スポンサーリンク