「これはヤバかったな」という遅刻エピソード

Form1をHideで非表示にし、Form2を開いた後、再びForm1を表示したいのですがうまくいきません。

[form1のイベント]
Dim frmForm2 as New Form2
frmForm2.Show
Me.hide
Sub End

[form2のイベント]
Dim frmForm1 as New Form1
frmForm1.Show
Me.Close
Sub End

としてあります。
非表示されたフォームを再表示されずに、新しくフォームが開いてしまっていると考えられるんですが、どうしたらよいでしょうか? 

A 回答 (2件)

form2で行っている,


Dim frmForm1 as New Form1
の行の意味は
frmForm1と言う、「新しい」Form1クラスのインスタンスを発行する、と言う意味です。

だから新しいFormが開いてしまうのです。

一番簡単に基のFormを再表示したいのであれば

[Form1]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fm2 As New Form2
fm2.PreForm = Me

Me.Hide()
fm2.Show()
End Sub
[Form2]
Public PreForm As Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PreForm.Show()
Me.Close()
End Sub

ですかねえ。
他だとShowDialog()の使用も候補になるかと。
    • good
    • 0
この回答へのお礼

なるほど、[Form2]に予めpublic権限でPreFormを作っておき、[Form1]を実行時にMe(form1)をPreFormに入れることで、[Form2]でも再び[Form1]を呼び出すことが出来るんですね。
適切な回答ありがとうございました。先ほども助かりました。

お礼日時:2006/05/01 18:22

form2で As New している…



.Netは使ったこと無いけれど、
Showメソッドのデフォルトがモーダルなら(モーダルで表示させれば)
Me.Hide
frmForm2.Show
Me.Show
で目的が果たせるのでは?
    • good
    • 0
この回答へのお礼

As Newをしているから、新しくフォームが作られるんですね。
ご回答ありがとうございました

お礼日時:2006/05/01 18:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A