DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォームの遷移について

環境/言語:[VB.NET]
分類:[.NET]

みなさん初めまして。JEEPと申します。

フォームの遷移について質問させて頂きます。

A.フォーム1のボタンがクリックされたらフォーム1を消しフォーム2を表示させる。
B.フォーム2のボタンがクリックされたらフォーム2を消しフォーム1を表示させる。

AとBを交互に行えるようにしたいというのが望みです。

フォーム1のボタンクリックイベントルーチンは

Private Sub Button_Click(略) Handles Button1.Click
Dim form2 As New form2(Me)
Me.AddOwnedForm(form2)
Me.Hide()
form2.ShowDialog(Me)
End Sub

こう書いています。

フォーム2のボタンクリックイベントルーチンは

Private Sub Button1_Click(略) Handles Button1.Click
Dim form1 As Form1
form1.Show()
Me.Dispose()
End Sub

こう書いています。

A→Bは遷移するのですが、B→Aで例外エラーが発生します。

過去ログを見てみましたが、私が抱えている問題があまりにも初歩的な問題で
あるせいか、載ってはいませんでした。

アドバイス頂ければ幸いです。よろしくお願い致します。
JEEPさんこんばんは。

まず、

> Private Sub Button1_Click(略) Handles Button1.Click
> Dim form1 As Form1
> form1.Show()
> Me.Dispose()
> End Sub

ここでエラーになるのは、
form1のインスタンスがないからです。
せっかく " Me.AddOwnedForm(form2) "で、
form2から使えるようにしてるのに... ^^;

それで、" form1.Show() "の前に、form1 = Me.Owner
とすれば、渡したform1のインスタンスをShowすることができますよ。
SHさん、返信ありがとうございます。

> それで、" form1.Show() "の前に、form1 = Me.Owner
> とすれば、渡したform1のインスタンスをShowすることができますよ。

できました!!!

てっきり

Dim form1 As Form1

の宣言だけでいいと思ってました。

勉強になりました、ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板