|
分類:[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では駄目なのでしょうか?
|