C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 109 を表示中)
■64601 / )  親フォームから子フォームを閉じたい
□投稿者/ MP枯渇ウィザード (3回)-(2012/12/10(Mon) 17:01:17)

分類:[VB.NET/VB2005 以降] 

お世話になります。

Windowsフォームアプリでメインになるフォーム1にボタンを3つ配置、ボタン2でフォーム2が開き、
ボタン3でフォーム3が開くようにしています(ボタン1は子フォームが開いているときに
 親フォームのボタンも子フォームのボタンも有効であることの確認用なので、今回は
 話に触れなくて良いと思います)。


ボタン2を押したとき、フォーム3が開いていたら閉じるようにしたいのですが、上手く
行きません。

Public Class Form1


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a
        a = MsgBox("終了?", MsgBoxStyle.YesNo)
        If a = vbYes Then
            Application.Exit()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If My.Application.OpenForms("Form3") IsNot Nothing Then
            Form3.Close()
            Form3.Dispose()
        End If

        '表示させるフォームのインスタンスを作成
        Dim f As New Form2()
        'TopLevelをFalseにする
        f.TopLevel = False
        'フォームのコントロールに追加する
        Me.Controls.Add(f)
        'フォームを表示する
        f.Show()
        '最前面へ移動
        f.BringToFront()


    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        '表示させるフォームのインスタンスを作成
        Dim f As New Form3()
        'TopLevelをFalseにする
        f.TopLevel = False
        'フォームのコントロールに追加する
        Me.Controls.Add(f)
        'フォームを表示する
        f.Show()
        '最前面へ移動
        f.BringToFront()

    End Sub


End Class

Close/Disposeでは駄目なのでしょうか?

返信 編集キー/


管理者用

- Child Tree -