VB.NETフォームを特定のフォームより手前に表示する

スポンサーリンク

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

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

サンプルコード

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

VB.NET 全般
    ' Form1 の新しいインスタンスを生成する
    Dim cForm1 As New Form1()

    ' cForm1 を所有する
    Me.AddOwnedForm(cForm1)

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

    ' cForm1 を表示する
    cForm1.Show()

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

VB.NET 全般
    ' cForm1 を所有を解除する
    Me.RemoveOwnedForm(cForm1)

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

関連するリファレンス

準備中です。

スポンサーリンク