- PR -

Form1を閉じてForm2をオープンしたい

1
投稿者投稿内容
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-05-27 13:17
初めて投稿します

件名にも書きましたが、
Form1でコマンドボタンをクリックした後、
Form1をクローズしForm2をオープンする処理を考えています。
最初に次のような処理にしてみたところ

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.Close()
Dim Form1 As New Form1
Form1.ShowDialog()

End Sub

Form2が開かずに、いきなりプログラムが終了しました。
そこで、
Form1.ShowDialog()をForm1.Show()
に変えてみましたが結果は同じでした

Me.CloseをMe.Hideにした場合は
希望通り、Form1を閉じた後、Form2がオープンされます。

ただ、Closeではないので、フォームをクローズできないかと
悩んでおります。

なにか良い方法がございましたら
教えていただけますでしょうか?
art
常連さん
会議室デビュー日: 2005/05/10
投稿数: 25
投稿日時: 2005-05-27 14:02
Form2を開いてからForm1を閉じては駄目なのですか?

あるいは、Hide→Form2を開く→Closeにすれば、
見た目も1を閉じて2を開くように見えると思いますが。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-05-27 14:08
きっと Form1 がメインフォームなので閉じるとスレッドが終了するのでしょう。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-05-27 14:20
引用:

にしざきさんの書き込み (2005-05-27 14:08) より:
きっと Form1 がメインフォームなので閉じるとスレッドが終了するのでしょう。


Mainメソッドを自分で作成して、Application.RunにApplicationContextを渡す。
ApplicationContextはどっかに覚えておく。
フォームを切り替えるときは、ApplicationContextのMainFormを変更してから
フォームを閉じたり表示したりする(表示はShowを使う)。

とか。

※最初からForm表示後に引数無しのApplication.Runというのもありですが。
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-05-27 14:29
お返事ありがとうございます。
さっそくForm2を開く際にForm1を閉じようと
次のようにしたらエラーになりました。

VB6の時は、「Form1.Close」でOKだったと思ったのですが
Closeの引数をどのようにすればいいのでしょうか?

ヘルプで、Form.Close メソッドのあたりを読んでいますが
参考になるようなことが見つかりませんでした・・・

--------------------------
Private Sub Form2_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

Close(Form1)

End Sub

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2005-05-27 16:56
引用:

バニラミントさんの書き込み (2005-05-27 14:29) より:
VB6の時は、「Form1.Close」でOKだったと思ったのですが
Closeの引数をどのようにすればいいのでしょうか?


VB6とはこのあたりまったく変わっています。
にしざきさんやなちゃさんが書かれていることをきちんと
理解する必要があります。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-05-27 20:16
こんにちは、じゃんぬ です。

引用:

VB6の時は、「Form1.Close」でOKだったと思ったのですが


VB6 に Close メソッドはありません。
Unload([Form のインスタンス]) です。

引用:

Closeの引数をどのようにすればいいのでしょうか?


Close メソッドに引数はありません。

  Form.Close メソッド

っていうか、皆さんの投稿をご覧になってないのですか?
なちゃ さんの投稿が答えそのものです。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-05-28 08:23
みなさん返答ありがとうございました。
Application.RunにApplicationContextあたりについて
勉強してみます。
じゃんぬねっとさん、たしかにそうですね。
Unloadでした。失礼しました。
1

スキルアップ/キャリアアップ(JOB@IT)